{
 "cells": [
  {
   "cell_type": "code",
   "id": "db3a9dfc",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-10-22T22:11:19.333141Z",
     "start_time": "2024-10-22T16:52:47.171097Z"
    }
   },
   "source": [
    "%run fgnet_main_model.py --dataset CIC_IOT-dataset-2017_src2des"
   ],
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2025-03-31 20:07:06.170914: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
      "To enable the following instructions: AVX2 AVX512F FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n",
      "2025-03-31 20:07:07.136296: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "using dataset CIC_IOT-dataset-2017_src2des\n",
      "test_rate is 0.1\n",
      "model_path ./data/fgnet_CIC_IOT-dataset-2017_src2des_model!\n",
      "data_path ./data/fgnet_CIC_IOT-dataset-2017_src2des!\n",
      "dumpFilename: ./data/fgnet_CIC_IOT-dataset-2017_src2des/dataset_builder.pkl.gzip\n",
      "log_directory: ./dataset/CIC_IOT-dataset-2017_src2des\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/wxg6226/anaconda3/envs/fgnet_gpu/lib/python3.9/site-packages/torch/storage.py:414: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n",
      "  return torch.load(io.BytesIO(b))\n",
      "Time:2025-03-31 20:07:32.965999, [-WARN]: Load dump data from ./data/fgnet_CIC_IOT-dataset-2017_src2des/dataset_builder.pkl.gzip\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train:7134,Test:376,Valid:417\n",
      "####################################################################################################\n",
      "Now begin new experiment with the following model parameter!\n",
      "{'latent_feature_length': 200, 'nb_layer': 2}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=200，out_feats=200,num_heads=2\n",
      "Build GAT : in_feats=400，out_feats=400,num_heads=1\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:07:33.957693, [-WARN]: Load empty model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/gnn_model.pkl.\n",
      "  0%|          | 0/40 [00:00<?, ?it/s]Time:2025-03-31 20:10:07.316228, [-WARN]: Epoch 0, loss: 1.9610\n",
      "Time:2025-03-31 20:10:07.371127, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-03-31 20:10:07.472982, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      "  2%|▎         | 1/40 [02:33<1:39:46, 153.51s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17, 25], device='cuda:0')\n",
      "tensor([19, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:12:42.179957, [-WARN]: Epoch 1, loss: 1.2979\n",
      "Time:2025-03-31 20:12:42.211385, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 20:12:42.337402, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      "  5%|▌         | 2/40 [05:08<1:37:43, 154.31s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 23], device='cuda:0')\n",
      "tensor([ 4, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:15:21.998511, [-WARN]: Epoch 2, loss: 1.1663\n",
      "Time:2025-03-31 20:15:22.029064, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 20:15:22.157432, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      "  8%|▊         | 3/40 [07:48<1:36:42, 156.82s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 25], device='cuda:0')\n",
      "tensor([ 8, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:18:06.145606, [-WARN]: Epoch 3, loss: 1.0763\n",
      "Time:2025-03-31 20:18:06.179211, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-03-31 20:18:06.299666, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 10%|█         | 4/40 [10:32<1:35:49, 159.71s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 16], device='cuda:0')\n",
      "tensor([21, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:20:50.466540, [-WARN]: Epoch 4, loss: 1.0060\n",
      "Time:2025-03-31 20:20:50.500234, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 20:20:50.633038, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 12%|█▎        | 5/40 [13:16<1:34:08, 161.38s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22,  1], device='cuda:0')\n",
      "tensor([22,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:23:33.649003, [-WARN]: Epoch 5, loss: 0.9145\n",
      "Time:2025-03-31 20:23:33.680007, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 20:23:33.808751, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 15%|█▌        | 6/40 [15:59<1:31:47, 161.99s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([12, 25], device='cuda:0')\n",
      "tensor([12, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:26:15.279080, [-WARN]: Epoch 6, loss: 0.8676\n",
      "Time:2025-03-31 20:26:15.312447, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-03-31 20:26:15.437837, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 18%|█▊        | 7/40 [18:41<1:29:01, 161.87s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 20], device='cuda:0')\n",
      "tensor([ 6, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:28:52.296037, [-WARN]: Epoch 7, loss: 0.8476\n",
      "Time:2025-03-31 20:28:52.327990, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 20:28:52.451069, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 20%|██        | 8/40 [21:18<1:25:30, 160.33s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19,  1], device='cuda:0')\n",
      "tensor([23,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:31:34.035762, [-WARN]: Epoch 8, loss: 0.8261\n",
      "Time:2025-03-31 20:31:34.073691, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 20:31:34.215245, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 22%|██▎       | 9/40 [24:00<1:23:04, 160.78s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 6, 18], device='cuda:0')\n",
      "tensor([ 6, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:34:17.664716, [-WARN]: Epoch 9, loss: 0.8039\n",
      "Time:2025-03-31 20:34:17.699300, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-03-31 20:34:17.831428, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 25%|██▌       | 10/40 [26:43<1:20:49, 161.65s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 6], device='cuda:0')\n",
      "tensor([6, 8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:37:03.784958, [-WARN]: Epoch 10, loss: 0.7841\n",
      "Time:2025-03-31 20:37:03.817148, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 20:37:03.941744, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 28%|██▊       | 11/40 [29:29<1:18:47, 163.02s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 10], device='cuda:0')\n",
      "tensor([1, 6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:39:46.633853, [-WARN]: Epoch 11, loss: 0.7734\n",
      "Time:2025-03-31 20:39:46.669412, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 20:39:46.800588, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 30%|███       | 12/40 [32:12<1:16:03, 162.97s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 0], device='cuda:0')\n",
      "tensor([1, 0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:42:31.661183, [-WARN]: Epoch 12, loss: 0.7620\n",
      "Time:2025-03-31 20:42:31.693322, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 20:42:31.829487, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 32%|███▎      | 13/40 [34:57<1:13:36, 163.59s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 17], device='cuda:0')\n",
      "tensor([ 1, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:45:16.977442, [-WARN]: Epoch 13, loss: 0.7511\n",
      "Time:2025-03-31 20:45:17.011599, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 20:45:17.140495, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 35%|███▌      | 14/40 [37:43<1:11:06, 164.11s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16,  1], device='cuda:0')\n",
      "tensor([18,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:48:02.673654, [-WARN]: Epoch 14, loss: 0.7310\n",
      "Time:2025-03-31 20:48:02.711191, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 20:48:02.849139, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 38%|███▊      | 15/40 [40:28<1:08:34, 164.59s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 22], device='cuda:0')\n",
      "tensor([ 1, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:50:47.825113, [-WARN]: Epoch 15, loss: 0.7206\n",
      "Time:2025-03-31 20:50:47.857523, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 20:50:47.983224, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 40%|████      | 16/40 [43:14<1:05:54, 164.76s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 15], device='cuda:0')\n",
      "tensor([ 1, 15], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:53:30.602551, [-WARN]: Epoch 16, loss: 0.7139\n",
      "Time:2025-03-31 20:53:30.636550, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 20:53:30.766016, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 42%|████▎     | 17/40 [45:56<1:02:55, 164.16s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([14,  4], device='cuda:0')\n",
      "tensor([6, 4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:56:07.061042, [-WARN]: Epoch 17, loss: 0.6971\n",
      "Time:2025-03-31 20:56:07.098330, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 20:56:07.227047, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 45%|████▌     | 18/40 [48:33<59:20, 161.85s/it]  "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16, 25], device='cuda:0')\n",
      "tensor([16, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 20:58:52.094632, [-WARN]: Epoch 18, loss: 0.6792\n",
      "Time:2025-03-31 20:58:52.161264, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 20:58:52.280893, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 48%|████▊     | 19/40 [51:18<56:59, 162.81s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22,  0], device='cuda:0')\n",
      "tensor([22,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:01:36.490852, [-WARN]: Epoch 19, loss: 0.6779\n",
      "Time:2025-03-31 21:01:36.523521, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 21:01:36.641517, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 50%|█████     | 20/40 [54:02<54:25, 163.28s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([4, 1], device='cuda:0')\n",
      "tensor([4, 1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:04:19.607513, [-WARN]: Epoch 20, loss: 0.6654\n",
      "Time:2025-03-31 21:04:19.644671, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 21:04:19.769532, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 52%|█████▎    | 21/40 [56:45<51:41, 163.23s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 23], device='cuda:0')\n",
      "tensor([ 4, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:07:01.722301, [-WARN]: Epoch 21, loss: 0.6641\n",
      "Time:2025-03-31 21:07:01.793682, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 21:07:01.900863, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 55%|█████▌    | 22/40 [59:27<48:52, 162.90s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19,  0], device='cuda:0')\n",
      "tensor([19,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:09:41.575767, [-WARN]: Epoch 22, loss: 0.6461\n",
      "Time:2025-03-31 21:09:41.611018, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 21:09:41.736266, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 57%|█████▊    | 23/40 [1:02:07<45:53, 161.98s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19, 22], device='cuda:0')\n",
      "tensor([19, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:12:26.307393, [-WARN]: Epoch 23, loss: 0.6252\n",
      "Time:2025-03-31 21:12:26.344107, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 21:12:26.470810, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 60%|██████    | 24/40 [1:04:52<43:24, 162.81s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([21, 18], device='cuda:0')\n",
      "tensor([21, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:15:11.211953, [-WARN]: Epoch 24, loss: 0.6178\n",
      "Time:2025-03-31 21:15:11.243461, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 21:15:11.370726, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 62%|██████▎   | 25/40 [1:07:37<40:51, 163.44s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([24,  8], device='cuda:0')\n",
      "tensor([24, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:17:49.571552, [-WARN]: Epoch 25, loss: 0.6141\n",
      "Time:2025-03-31 21:17:49.595387, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-03-31 21:17:49.706047, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 65%|██████▌   | 26/40 [1:10:15<37:46, 161.91s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17,  8], device='cuda:0')\n",
      "tensor([19, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:20:27.910082, [-WARN]: Epoch 26, loss: 0.6014\n",
      "Time:2025-03-31 21:20:27.942290, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 21:20:28.071929, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 68%|██████▊   | 27/40 [1:12:54<34:50, 160.84s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 16], device='cuda:0')\n",
      "tensor([ 8, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:23:00.657923, [-WARN]: Epoch 27, loss: 0.5992\n",
      "Time:2025-03-31 21:23:00.687660, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 21:23:00.813549, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 70%|███████   | 28/40 [1:15:26<31:40, 158.41s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 0, 22], device='cuda:0')\n",
      "tensor([ 0, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:25:45.674187, [-WARN]: Epoch 28, loss: 0.5854\n",
      "Time:2025-03-31 21:25:45.703338, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 21:25:45.826218, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 72%|███████▎  | 29/40 [1:18:11<29:24, 160.39s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([13,  6], device='cuda:0')\n",
      "tensor([13,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:28:21.610354, [-WARN]: Epoch 29, loss: 0.5786\n",
      "Time:2025-03-31 21:28:21.641144, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 21:28:21.765730, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 75%|███████▌  | 30/40 [1:20:47<26:30, 159.06s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([20, 19], device='cuda:0')\n",
      "tensor([20, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:31:07.457440, [-WARN]: Epoch 30, loss: 0.5673\n",
      "Time:2025-03-31 21:31:07.489659, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 21:31:07.619950, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 78%|███████▊  | 31/40 [1:23:33<24:09, 161.10s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([15,  4], device='cuda:0')\n",
      "tensor([15,  4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:33:34.924980, [-WARN]: Epoch 31, loss: 0.5502\n",
      "Time:2025-03-31 21:33:34.956334, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 21:33:35.082005, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 80%|████████  | 32/40 [1:26:01<20:56, 157.01s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17,  1], device='cuda:0')\n",
      "tensor([23,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:36:03.478592, [-WARN]: Epoch 32, loss: 0.5450\n",
      "Time:2025-03-31 21:36:03.510793, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 21:36:03.636780, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 82%|████████▎ | 33/40 [1:28:29<18:01, 154.47s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 2, 18], device='cuda:0')\n",
      "tensor([ 2, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:38:43.878776, [-WARN]: Epoch 33, loss: 0.5344\n",
      "Time:2025-03-31 21:38:43.917229, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 21:38:44.051807, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 85%|████████▌ | 34/40 [1:31:10<15:37, 156.25s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([4, 8], device='cuda:0')\n",
      "tensor([4, 8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:41:29.840300, [-WARN]: Epoch 34, loss: 0.5403\n",
      "Time:2025-03-31 21:41:29.874667, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 21:41:30.000041, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 88%|████████▊ | 35/40 [1:33:56<13:15, 159.16s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  1], device='cuda:0')\n",
      "tensor([23,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:44:10.506113, [-WARN]: Epoch 35, loss: 0.5208\n",
      "Time:2025-03-31 21:44:10.579811, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 21:44:10.689533, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 90%|█████████ | 36/40 [1:36:36<10:38, 159.62s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([0, 0], device='cuda:0')\n",
      "tensor([0, 0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:46:45.945462, [-WARN]: Epoch 36, loss: 0.5114\n",
      "Time:2025-03-31 21:46:45.971818, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 21:46:46.094216, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 92%|█████████▎| 37/40 [1:39:12<07:55, 158.36s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19,  1], device='cuda:0')\n",
      "tensor([19,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:49:28.302579, [-WARN]: Epoch 37, loss: 0.5055\n",
      "Time:2025-03-31 21:49:28.332555, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-03-31 21:49:28.461194, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 95%|█████████▌| 38/40 [1:41:54<05:19, 159.56s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 1], device='cuda:0')\n",
      "tensor([12,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:52:09.118533, [-WARN]: Epoch 38, loss: 0.5000\n",
      "Time:2025-03-31 21:52:09.149202, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 21:52:09.273788, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      " 98%|█████████▊| 39/40 [1:44:35<02:39, 159.94s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17,  6], device='cuda:0')\n",
      "tensor([17, 14], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:54:53.357575, [-WARN]: Epoch 39, loss: 0.4847\n",
      "Time:2025-03-31 21:54:53.392170, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 21:54:53.518087, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/ well.\n",
      "100%|██████████| 40/40 [1:47:19<00:00, 160.99s/it]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 25], device='cuda:0')\n",
      "tensor([17, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 21:54:53.935015, [-WARN]: Load empty model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/gnn_model.pkl.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "####################################################################################################\n",
      "Now begin new experiment with the following model parameter!\n",
      "{'latent_feature_length': 100, 'nb_layer': 4}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=100，out_feats=100,num_heads=5\n",
      "Build GAT : in_feats=500，out_feats=200,num_heads=3\n",
      "Build GAT : in_feats=600，out_feats=400,num_heads=2\n",
      "Build GAT : in_feats=800，out_feats=600,num_heads=1\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  0%|          | 0/40 [00:00<?, ?it/s]Time:2025-03-31 21:58:35.265286, [-WARN]: Epoch 0, loss: 1.9583\n",
      "Time:2025-03-31 21:58:35.304762, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 21:58:35.401037, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      "  2%|▎         | 1/40 [03:41<2:23:56, 221.46s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22,  1], device='cuda:0')\n",
      "tensor([22,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:02:12.330356, [-WARN]: Epoch 1, loss: 1.2752\n",
      "Time:2025-03-31 22:02:12.371325, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 22:02:12.504129, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      "  5%|▌         | 2/40 [07:18<2:18:38, 218.90s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 6], device='cuda:0')\n",
      "tensor([8, 8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:05:53.874497, [-WARN]: Epoch 2, loss: 1.1509\n",
      "Time:2025-03-31 22:05:53.915037, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 22:05:54.043793, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      "  8%|▊         | 3/40 [11:00<2:15:43, 220.10s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 15], device='cuda:0')\n",
      "tensor([25, 15], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:09:34.019689, [-WARN]: Epoch 3, loss: 1.0809\n",
      "Time:2025-03-31 22:09:34.059539, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 22:09:34.191420, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 10%|█         | 4/40 [14:40<2:12:04, 220.12s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25,  8], device='cuda:0')\n",
      "tensor([25,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:13:15.699258, [-WARN]: Epoch 4, loss: 1.0288\n",
      "Time:2025-03-31 22:13:15.739793, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 22:13:15.872340, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 12%|█▎        | 5/40 [18:21<2:08:43, 220.68s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 23], device='cuda:0')\n",
      "tensor([12, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:16:46.067406, [-WARN]: Epoch 5, loss: 0.9813\n",
      "Time:2025-03-31 22:16:46.106652, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 22:16:46.233674, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 15%|█▌        | 6/40 [21:52<2:03:03, 217.17s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10, 25], device='cuda:0')\n",
      "tensor([14, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:20:20.573290, [-WARN]: Epoch 6, loss: 0.9374\n",
      "Time:2025-03-31 22:20:20.613986, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 22:20:20.745704, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 18%|█▊        | 7/40 [25:26<1:58:58, 216.30s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18, 22], device='cuda:0')\n",
      "tensor([20, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:23:59.243596, [-WARN]: Epoch 7, loss: 0.8875\n",
      "Time:2025-03-31 22:23:59.320344, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 22:23:59.433722, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 20%|██        | 8/40 [29:05<1:55:46, 217.06s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 0, 15], device='cuda:0')\n",
      "tensor([ 0, 15], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:27:39.160619, [-WARN]: Epoch 8, loss: 0.8510\n",
      "Time:2025-03-31 22:27:39.232648, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 22:27:39.349240, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 22%|██▎       | 9/40 [32:45<1:52:36, 217.95s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 0], device='cuda:0')\n",
      "tensor([1, 0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:31:15.831405, [-WARN]: Epoch 9, loss: 0.8334\n",
      "Time:2025-03-31 22:31:15.877690, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 22:31:16.022425, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 25%|██▌       | 10/40 [36:22<1:48:46, 217.56s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 23], device='cuda:0')\n",
      "tensor([ 1, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:34:57.296486, [-WARN]: Epoch 10, loss: 0.8070\n",
      "Time:2025-03-31 22:34:57.338955, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-03-31 22:34:57.474224, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 28%|██▊       | 11/40 [40:03<1:45:43, 218.75s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([14, 18], device='cuda:0')\n",
      "tensor([ 6, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:38:40.323325, [-WARN]: Epoch 11, loss: 0.7937\n",
      "Time:2025-03-31 22:38:40.364800, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 22:38:40.488155, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 30%|███       | 12/40 [43:46<1:42:41, 220.05s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 0, 19], device='cuda:0')\n",
      "tensor([ 0, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:42:18.434033, [-WARN]: Epoch 12, loss: 0.7773\n",
      "Time:2025-03-31 22:42:18.474648, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 22:42:18.601614, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 32%|███▎      | 13/40 [47:24<1:38:45, 219.46s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19,  1], device='cuda:0')\n",
      "tensor([17,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:46:00.966086, [-WARN]: Epoch 13, loss: 0.7661\n",
      "Time:2025-03-31 22:46:01.006219, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 22:46:01.136176, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 35%|███▌      | 14/40 [51:07<1:35:30, 220.39s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([24, 21], device='cuda:0')\n",
      "tensor([24, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:49:44.934601, [-WARN]: Epoch 14, loss: 0.7564\n",
      "Time:2025-03-31 22:49:44.975317, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 22:49:45.107385, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 38%|███▊      | 15/40 [54:51<1:32:16, 221.47s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 23], device='cuda:0')\n",
      "tensor([25, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:53:19.189658, [-WARN]: Epoch 15, loss: 0.7448\n",
      "Time:2025-03-31 22:53:19.230003, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 22:53:19.366266, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 40%|████      | 16/40 [58:25<1:27:43, 219.30s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 8], device='cuda:0')\n",
      "tensor([14,  8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 22:56:59.479161, [-WARN]: Epoch 16, loss: 0.7385\n",
      "Time:2025-03-31 22:56:59.517606, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 22:56:59.642922, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 42%|████▎     | 17/40 [1:02:05<1:24:10, 219.59s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 11], device='cuda:0')\n",
      "tensor([4, 5], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:00:31.045174, [-WARN]: Epoch 17, loss: 0.7280\n",
      "Time:2025-03-31 23:00:31.124425, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 23:00:31.240649, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 45%|████▌     | 18/40 [1:05:37<1:19:38, 217.19s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([0, 8], device='cuda:0')\n",
      "tensor([0, 8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:04:06.123007, [-WARN]: Epoch 18, loss: 0.7280\n",
      "Time:2025-03-31 23:04:06.164032, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 23:04:06.296702, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 48%|████▊     | 19/40 [1:09:12<1:15:47, 216.55s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([6, 1], device='cuda:0')\n",
      "tensor([14,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:07:46.716708, [-WARN]: Epoch 19, loss: 0.7082\n",
      "Time:2025-03-31 23:07:46.756963, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 23:07:46.888833, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 50%|█████     | 20/40 [1:12:52<1:12:35, 217.76s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([12, 14], device='cuda:0')\n",
      "tensor([12,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:11:25.959465, [-WARN]: Epoch 20, loss: 0.7057\n",
      "Time:2025-03-31 23:11:25.998109, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 23:11:26.130286, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 52%|█████▎    | 21/40 [1:16:32<1:09:05, 218.21s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19, 19], device='cuda:0')\n",
      "tensor([19, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:14:48.616595, [-WARN]: Epoch 21, loss: 0.6987\n",
      "Time:2025-03-31 23:14:48.655783, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-03-31 23:14:48.781989, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 55%|█████▌    | 22/40 [1:19:54<1:04:03, 213.54s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18, 18], device='cuda:0')\n",
      "tensor([16, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:18:27.120146, [-WARN]: Epoch 22, loss: 0.6907\n",
      "Time:2025-03-31 23:18:27.160425, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 23:18:27.290604, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 57%|█████▊    | 23/40 [1:23:33<1:00:55, 215.03s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 21], device='cuda:0')\n",
      "tensor([ 1, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:22:01.071286, [-WARN]: Epoch 23, loss: 0.6837\n",
      "Time:2025-03-31 23:22:01.111225, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 23:22:01.246303, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 60%|██████    | 24/40 [1:27:07<57:15, 214.71s/it]  "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([6, 6], device='cuda:0')\n",
      "tensor([10,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:25:41.136582, [-WARN]: Epoch 24, loss: 0.6680\n",
      "Time:2025-03-31 23:25:41.177487, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 23:25:41.314465, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 62%|██████▎   | 25/40 [1:30:47<54:04, 216.32s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25,  4], device='cuda:0')\n",
      "tensor([25,  4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:29:24.660916, [-WARN]: Epoch 25, loss: 0.6616\n",
      "Time:2025-03-31 23:29:24.701880, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 23:29:24.830380, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 65%|██████▌   | 26/40 [1:34:30<50:58, 218.48s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 25], device='cuda:0')\n",
      "tensor([ 1, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:33:03.016759, [-WARN]: Epoch 26, loss: 0.6539\n",
      "Time:2025-03-31 23:33:03.059743, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 23:33:03.189297, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 68%|██████▊   | 27/40 [1:38:09<47:19, 218.44s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18, 21], device='cuda:0')\n",
      "tensor([16, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:36:42.337527, [-WARN]: Epoch 27, loss: 0.6499\n",
      "Time:2025-03-31 23:36:42.384065, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-03-31 23:36:42.517921, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 70%|███████   | 28/40 [1:41:48<43:44, 218.71s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16,  8], device='cuda:0')\n",
      "tensor([18, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:40:24.664956, [-WARN]: Epoch 28, loss: 0.6287\n",
      "Time:2025-03-31 23:40:24.707082, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 23:40:24.840601, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 72%|███████▎  | 29/40 [1:45:30<40:17, 219.79s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16, 22], device='cuda:0')\n",
      "tensor([16, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:44:05.756561, [-WARN]: Epoch 29, loss: 0.6282\n",
      "Time:2025-03-31 23:44:05.799475, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 23:44:05.939314, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 75%|███████▌  | 30/40 [1:49:12<36:41, 220.18s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([13, 22], device='cuda:0')\n",
      "tensor([13, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:47:46.773847, [-WARN]: Epoch 30, loss: 0.6260\n",
      "Time:2025-03-31 23:47:46.815962, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 23:47:46.944915, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 78%|███████▊  | 31/40 [1:52:53<33:03, 220.43s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 2, 23], device='cuda:0')\n",
      "tensor([ 3, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:51:23.826401, [-WARN]: Epoch 31, loss: 0.6016\n",
      "Time:2025-03-31 23:51:23.865197, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 23:51:23.998921, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 80%|████████  | 32/40 [1:56:30<29:15, 219.42s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([6, 1], device='cuda:0')\n",
      "tensor([6, 1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:55:06.375886, [-WARN]: Epoch 32, loss: 0.6022\n",
      "Time:2025-03-31 23:55:06.414583, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-03-31 23:55:06.540975, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 82%|████████▎ | 33/40 [2:00:12<25:42, 220.35s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19,  7], device='cuda:0')\n",
      "tensor([19,  7], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-03-31 23:58:48.124711, [-WARN]: Epoch 33, loss: 0.5944\n",
      "Time:2025-03-31 23:58:48.166754, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-03-31 23:58:48.292949, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 85%|████████▌ | 34/40 [2:03:54<22:04, 220.77s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([20, 24], device='cuda:0')\n",
      "tensor([24, 24], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:02:06.834520, [-WARN]: Epoch 34, loss: 0.5754\n",
      "Time:2025-04-01 00:02:06.880747, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 00:02:07.020832, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 88%|████████▊ | 35/40 [2:07:13<17:50, 214.16s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([20,  1], device='cuda:0')\n",
      "tensor([20,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:05:49.250052, [-WARN]: Epoch 35, loss: 0.5658\n",
      "Time:2025-04-01 00:05:49.294579, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 00:05:49.434780, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 90%|█████████ | 36/40 [2:10:55<14:26, 216.64s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([15, 22], device='cuda:0')\n",
      "tensor([ 5, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:09:29.606643, [-WARN]: Epoch 36, loss: 0.5579\n",
      "Time:2025-04-01 00:09:29.648253, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 00:09:29.775646, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 92%|█████████▎| 37/40 [2:14:35<10:53, 217.75s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25,  8], device='cuda:0')\n",
      "tensor([25, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:13:06.371164, [-WARN]: Epoch 37, loss: 0.5503\n",
      "Time:2025-04-01 00:13:06.410987, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 00:13:06.544067, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 95%|█████████▌| 38/40 [2:18:12<07:14, 217.45s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([11, 17], device='cuda:0')\n",
      "tensor([ 9, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:16:33.552397, [-WARN]: Epoch 38, loss: 0.5446\n",
      "Time:2025-04-01 00:16:33.592645, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 00:16:33.724356, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      " 98%|█████████▊| 39/40 [2:21:39<03:34, 214.37s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 25], device='cuda:0')\n",
      "tensor([ 1, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:20:06.098920, [-WARN]: Epoch 39, loss: 0.5371\n",
      "Time:2025-04-01 00:20:06.139278, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 00:20:06.270624, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/ well.\n",
      "100%|██████████| 40/40 [2:25:12<00:00, 217.81s/it]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10, 23], device='cuda:0')\n",
      "tensor([14, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/wxg6226/桌面/srtp_fgnet/fgnet-master/model_serialization.py:26: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n",
      "  model_CKPT = torch.load(path)\n",
      "Time:2025-04-01 00:20:06.552750, [-WARN]: Load model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/gnn_model.pkl well.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "####################################################################################################\n",
      "Now begin new experiment with the following model parameter!\n",
      "{'latent_feature_length': 60, 'nb_layer': 2}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=60，out_feats=60,num_heads=2\n",
      "Build GAT : in_feats=120，out_feats=120,num_heads=1\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  0%|          | 0/40 [00:00<?, ?it/s]Time:2025-04-01 00:22:41.464457, [-WARN]: Epoch 0, loss: 1.2553\n",
      "Time:2025-04-01 00:22:41.506819, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 00:22:41.624006, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      "  2%|▎         | 1/40 [02:35<1:40:47, 155.07s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16, 25], device='cuda:0')\n",
      "tensor([18, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:25:19.012296, [-WARN]: Epoch 1, loss: 1.2404\n",
      "Time:2025-04-01 00:25:19.046480, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 00:25:19.177953, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      "  5%|▌         | 2/40 [05:12<1:39:08, 156.53s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([12, 23], device='cuda:0')\n",
      "tensor([10, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:28:00.225838, [-WARN]: Epoch 2, loss: 1.2519\n",
      "Time:2025-04-01 00:28:00.300032, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 00:28:00.398057, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      "  8%|▊         | 3/40 [07:53<1:37:50, 158.67s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 0, 20], device='cuda:0')\n",
      "tensor([ 0, 24], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:30:30.074778, [-WARN]: Epoch 3, loss: 1.2444\n",
      "Time:2025-04-01 00:30:30.112721, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 00:30:30.218669, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 10%|█         | 4/40 [10:23<1:33:06, 155.18s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 19], device='cuda:0')\n",
      "tensor([ 6, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:33:03.313820, [-WARN]: Epoch 4, loss: 1.2464\n",
      "Time:2025-04-01 00:33:03.345788, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 00:33:03.456354, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 12%|█▎        | 5/40 [12:56<1:30:06, 154.48s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 10], device='cuda:0')\n",
      "tensor([23,  8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:35:38.798891, [-WARN]: Epoch 5, loss: 1.2559\n",
      "Time:2025-04-01 00:35:38.839840, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 00:35:38.954213, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 15%|█▌        | 6/40 [15:32<1:27:44, 154.82s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([14,  0], device='cuda:0')\n",
      "tensor([12,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:38:16.426105, [-WARN]: Epoch 6, loss: 1.2563\n",
      "Time:2025-04-01 00:38:16.459329, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 00:38:16.574883, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 18%|█▊        | 7/40 [18:10<1:25:39, 155.74s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 5, 17], device='cuda:0')\n",
      "tensor([ 7, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:40:55.244252, [-WARN]: Epoch 7, loss: 1.2541\n",
      "Time:2025-04-01 00:40:55.277589, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 00:40:55.386864, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 20%|██        | 8/40 [20:48<1:23:34, 156.72s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 19], device='cuda:0')\n",
      "tensor([12, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:43:31.460028, [-WARN]: Epoch 8, loss: 1.2556\n",
      "Time:2025-04-01 00:43:31.498837, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 00:43:31.614714, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 22%|██▎       | 9/40 [23:25<1:20:53, 156.56s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([11,  0], device='cuda:0')\n",
      "tensor([24,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:46:09.424317, [-WARN]: Epoch 9, loss: 1.2481\n",
      "Time:2025-04-01 00:46:09.456163, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 00:46:09.553942, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 25%|██▌       | 10/40 [26:02<1:18:29, 156.99s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19, 10], device='cuda:0')\n",
      "tensor([19,  8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:48:54.294935, [-WARN]: Epoch 10, loss: 1.2521\n",
      "Time:2025-04-01 00:48:54.330341, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 00:48:54.446173, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 28%|██▊       | 11/40 [28:47<1:17:02, 159.41s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19,  1], device='cuda:0')\n",
      "tensor([17,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:51:30.299892, [-WARN]: Epoch 11, loss: 1.2463\n",
      "Time:2025-04-01 00:51:30.335248, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 00:51:30.444331, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 30%|███       | 12/40 [31:23<1:13:54, 158.37s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([21,  0], device='cuda:0')\n",
      "tensor([25, 24], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:54:01.657459, [-WARN]: Epoch 12, loss: 1.2439\n",
      "Time:2025-04-01 00:54:01.694076, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 00:54:01.810560, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 32%|███▎      | 13/40 [33:55<1:10:18, 156.25s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 8], device='cuda:0')\n",
      "tensor([1, 8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:56:38.088025, [-WARN]: Epoch 13, loss: 1.2555\n",
      "Time:2025-04-01 00:56:38.119010, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 00:56:38.237401, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 35%|███▌      | 14/40 [36:31<1:07:43, 156.30s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([20, 19], device='cuda:0')\n",
      "tensor([18, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 00:59:18.356775, [-WARN]: Epoch 14, loss: 1.2508\n",
      "Time:2025-04-01 00:59:18.392628, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 00:59:18.509455, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 38%|███▊      | 15/40 [39:11<1:05:37, 157.50s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16, 23], device='cuda:0')\n",
      "tensor([16, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:01:57.887841, [-WARN]: Epoch 15, loss: 1.2437\n",
      "Time:2025-04-01 01:01:57.921001, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 01:01:58.038180, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 40%|████      | 16/40 [41:51<1:03:14, 158.11s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  7], device='cuda:0')\n",
      "tensor([25,  7], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:04:41.586501, [-WARN]: Epoch 16, loss: 1.2397\n",
      "Time:2025-04-01 01:04:41.653640, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 01:04:41.748718, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 42%|████▎     | 17/40 [44:35<1:01:15, 159.79s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 0, 23], device='cuda:0')\n",
      "tensor([ 0, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:07:18.029139, [-WARN]: Epoch 17, loss: 1.2452\n",
      "Time:2025-04-01 01:07:18.060038, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 01:07:18.172618, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 45%|████▌     | 18/40 [47:11<58:13, 158.78s/it]  "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19, 15], device='cuda:0')\n",
      "tensor([ 6, 15], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:09:55.214213, [-WARN]: Epoch 18, loss: 1.2432\n",
      "Time:2025-04-01 01:09:55.250197, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 01:09:55.367878, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 48%|████▊     | 19/40 [49:48<55:24, 158.31s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 25], device='cuda:0')\n",
      "tensor([ 1, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:12:32.063408, [-WARN]: Epoch 19, loss: 1.2488\n",
      "Time:2025-04-01 01:12:32.098972, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 01:12:32.208095, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 50%|█████     | 20/40 [52:25<52:37, 157.87s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 13], device='cuda:0')\n",
      "tensor([25, 13], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:15:07.886736, [-WARN]: Epoch 20, loss: 1.2479\n",
      "Time:2025-04-01 01:15:07.913525, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 01:15:08.013280, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 52%|█████▎    | 21/40 [55:01<49:47, 157.25s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19,  1], device='cuda:0')\n",
      "tensor([19,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:17:38.156262, [-WARN]: Epoch 21, loss: 1.2490\n",
      "Time:2025-04-01 01:17:38.198926, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 01:17:38.351029, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 55%|█████▌    | 22/40 [57:31<46:33, 155.17s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22, 17], device='cuda:0')\n",
      "tensor([22, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:20:16.283730, [-WARN]: Epoch 22, loss: 1.2525\n",
      "Time:2025-04-01 01:20:16.319364, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 01:20:16.438330, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 57%|█████▊    | 23/40 [1:00:09<44:12, 156.05s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  2], device='cuda:0')\n",
      "tensor([25,  2], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:22:49.855735, [-WARN]: Epoch 23, loss: 1.2488\n",
      "Time:2025-04-01 01:22:49.889803, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 01:22:50.003919, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 60%|██████    | 24/40 [1:02:43<41:24, 155.30s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19, 10], device='cuda:0')\n",
      "tensor([19,  8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:25:24.840194, [-WARN]: Epoch 24, loss: 1.2503\n",
      "Time:2025-04-01 01:25:24.871950, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 01:25:24.986588, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 62%|██████▎   | 25/40 [1:05:18<38:48, 155.21s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17, 22], device='cuda:0')\n",
      "tensor([19, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:27:58.171872, [-WARN]: Epoch 25, loss: 1.2514\n",
      "Time:2025-04-01 01:27:58.204796, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 01:27:58.321700, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 65%|██████▌   | 26/40 [1:07:51<36:05, 154.65s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 20], device='cuda:0')\n",
      "tensor([23, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:30:28.520144, [-WARN]: Epoch 26, loss: 1.2431\n",
      "Time:2025-04-01 01:30:28.555397, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 01:30:28.674105, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 68%|██████▊   | 27/40 [1:10:22<33:13, 153.36s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22, 20], device='cuda:0')\n",
      "tensor([16, 20], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:33:01.843276, [-WARN]: Epoch 27, loss: 1.2552\n",
      "Time:2025-04-01 01:33:01.877687, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 01:33:01.993268, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 70%|███████   | 28/40 [1:12:55<30:40, 153.35s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10, 13], device='cuda:0')\n",
      "tensor([10, 13], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:35:41.188042, [-WARN]: Epoch 28, loss: 1.2478\n",
      "Time:2025-04-01 01:35:41.221057, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 01:35:41.336293, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 72%|███████▎  | 29/40 [1:15:34<28:26, 155.14s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([15, 14], device='cuda:0')\n",
      "tensor([15,  8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:38:19.928639, [-WARN]: Epoch 29, loss: 1.2493\n",
      "Time:2025-04-01 01:38:19.965943, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 01:38:20.082891, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 75%|███████▌  | 30/40 [1:18:13<26:02, 156.23s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 19], device='cuda:0')\n",
      "tensor([ 1, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:41:00.824929, [-WARN]: Epoch 30, loss: 1.2420\n",
      "Time:2025-04-01 01:41:00.857705, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 01:41:00.973239, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 78%|███████▊  | 31/40 [1:20:54<23:38, 157.62s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 22], device='cuda:0')\n",
      "tensor([ 4, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:43:33.014439, [-WARN]: Epoch 31, loss: 1.2474\n",
      "Time:2025-04-01 01:43:33.055442, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 01:43:33.173736, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 80%|████████  | 32/40 [1:23:26<20:47, 156.00s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 24], device='cuda:0')\n",
      "tensor([ 4, 24], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:46:12.304122, [-WARN]: Epoch 32, loss: 1.2464\n",
      "Time:2025-04-01 01:46:12.339738, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 01:46:12.456758, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 82%|████████▎ | 33/40 [1:26:05<18:18, 156.98s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10,  8], device='cuda:0')\n",
      "tensor([ 6, 14], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:48:55.173420, [-WARN]: Epoch 33, loss: 1.2511\n",
      "Time:2025-04-01 01:48:55.206057, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 01:48:55.319653, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 85%|████████▌ | 34/40 [1:28:48<15:52, 158.75s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 19], device='cuda:0')\n",
      "tensor([25, 14], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:51:37.466767, [-WARN]: Epoch 34, loss: 1.2442\n",
      "Time:2025-04-01 01:51:37.503840, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 01:51:37.621316, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 88%|████████▊ | 35/40 [1:31:31<13:19, 159.81s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 0, 16], device='cuda:0')\n",
      "tensor([ 0, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:54:09.777485, [-WARN]: Epoch 35, loss: 1.2493\n",
      "Time:2025-04-01 01:54:09.803984, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 01:54:09.902484, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 90%|█████████ | 36/40 [1:34:03<10:30, 157.55s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  8], device='cuda:0')\n",
      "tensor([25, 10], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:56:41.339100, [-WARN]: Epoch 36, loss: 1.2414\n",
      "Time:2025-04-01 01:56:41.375570, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 01:56:41.495668, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 92%|█████████▎| 37/40 [1:36:34<07:47, 155.77s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([20,  1], device='cuda:0')\n",
      "tensor([16,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 01:59:20.446462, [-WARN]: Epoch 37, loss: 1.2429\n",
      "Time:2025-04-01 01:59:20.478947, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 01:59:20.598665, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 95%|█████████▌| 38/40 [1:39:14<05:13, 156.77s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([20, 19], device='cuda:0')\n",
      "tensor([24, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:01:51.374913, [-WARN]: Epoch 38, loss: 1.2578\n",
      "Time:2025-04-01 02:01:51.408078, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 02:01:51.521630, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      " 98%|█████████▊| 39/40 [1:41:44<02:35, 155.01s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 4], device='cuda:0')\n",
      "tensor([8, 4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:04:21.314412, [-WARN]: Epoch 39, loss: 1.2544\n",
      "Time:2025-04-01 02:04:21.346770, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 02:04:21.460040, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/ well.\n",
      "100%|██████████| 40/40 [1:44:14<00:00, 156.37s/it]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([12, 24], device='cuda:0')\n",
      "tensor([ 6, 24], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:04:21.745873, [-WARN]: Load model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/gnn_model.pkl well.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "####################################################################################################\n",
      "Now begin new experiment with the following model parameter!\n",
      "{'latent_feature_length': 80, 'nb_layer': 2}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=80，out_feats=80,num_heads=2\n",
      "Build GAT : in_feats=160，out_feats=160,num_heads=1\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  0%|          | 0/40 [00:00<?, ?it/s]Time:2025-04-01 02:07:02.957182, [-WARN]: Epoch 0, loss: 0.8434\n",
      "Time:2025-04-01 02:07:02.995260, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 02:07:03.112429, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      "  2%|▎         | 1/40 [02:41<1:44:53, 161.36s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 25], device='cuda:0')\n",
      "tensor([14, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:09:42.360849, [-WARN]: Epoch 1, loss: 0.8432\n",
      "Time:2025-04-01 02:09:42.393058, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 02:09:42.505888, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      "  5%|▌         | 2/40 [05:20<1:41:27, 160.20s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18, 14], device='cuda:0')\n",
      "tensor([16, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:12:16.428520, [-WARN]: Epoch 2, loss: 0.8442\n",
      "Time:2025-04-01 02:12:16.458697, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 02:12:16.573175, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      "  8%|▊         | 3/40 [07:54<1:37:03, 157.40s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([12, 25], device='cuda:0')\n",
      "tensor([12, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:14:50.382580, [-WARN]: Epoch 3, loss: 0.8454\n",
      "Time:2025-04-01 02:14:50.413717, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 02:14:50.529365, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 10%|█         | 4/40 [10:28<1:33:37, 156.04s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([12,  1], device='cuda:0')\n",
      "tensor([12,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:17:22.552928, [-WARN]: Epoch 4, loss: 0.8389\n",
      "Time:2025-04-01 02:17:22.584625, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 02:17:22.703659, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 12%|█▎        | 5/40 [13:00<1:30:12, 154.65s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 20], device='cuda:0')\n",
      "tensor([14, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:19:50.773300, [-WARN]: Epoch 5, loss: 0.8470\n",
      "Time:2025-04-01 02:19:50.806227, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 02:19:50.927469, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 15%|█▌        | 6/40 [15:29<1:26:23, 152.46s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([11, 21], device='cuda:0')\n",
      "tensor([ 5, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:22:27.430735, [-WARN]: Epoch 6, loss: 0.8456\n",
      "Time:2025-04-01 02:22:27.502427, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 02:22:27.603410, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 18%|█▊        | 7/40 [18:05<1:24:36, 153.84s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  0], device='cuda:0')\n",
      "tensor([23,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:24:59.974122, [-WARN]: Epoch 7, loss: 0.8398\n",
      "Time:2025-04-01 02:25:00.003088, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 02:25:00.118745, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 20%|██        | 8/40 [20:38<1:21:49, 153.42s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10,  1], device='cuda:0')\n",
      "tensor([10,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:27:34.084205, [-WARN]: Epoch 8, loss: 0.8422\n",
      "Time:2025-04-01 02:27:34.115558, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 02:27:34.230040, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 22%|██▎       | 9/40 [23:12<1:19:22, 153.64s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16,  1], device='cuda:0')\n",
      "tensor([16,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:30:17.669471, [-WARN]: Epoch 9, loss: 0.8432\n",
      "Time:2025-04-01 02:30:17.701785, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 02:30:17.814736, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 25%|██▌       | 10/40 [25:56<1:18:21, 156.71s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([12, 12], device='cuda:0')\n",
      "tensor([12,  8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:32:59.921328, [-WARN]: Epoch 10, loss: 0.8462\n",
      "Time:2025-04-01 02:32:59.956603, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 02:33:00.076730, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 28%|██▊       | 11/40 [28:38<1:16:33, 158.41s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 12], device='cuda:0')\n",
      "tensor([ 1, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:35:28.849292, [-WARN]: Epoch 11, loss: 0.8447\n",
      "Time:2025-04-01 02:35:28.880653, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 02:35:28.997186, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 30%|███       | 12/40 [31:07<1:12:34, 155.52s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 10], device='cuda:0')\n",
      "tensor([12, 10], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:38:00.609248, [-WARN]: Epoch 12, loss: 0.8389\n",
      "Time:2025-04-01 02:38:00.646891, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 02:38:00.754318, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 32%|███▎      | 13/40 [33:39<1:09:28, 154.38s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 0, 25], device='cuda:0')\n",
      "tensor([ 0, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:40:36.942722, [-WARN]: Epoch 13, loss: 0.8398\n",
      "Time:2025-04-01 02:40:36.975071, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 02:40:37.092022, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 35%|███▌      | 14/40 [36:15<1:07:09, 154.97s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17, 20], device='cuda:0')\n",
      "tensor([19, 20], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:43:16.012662, [-WARN]: Epoch 14, loss: 0.8486\n",
      "Time:2025-04-01 02:43:16.045380, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 02:43:16.164440, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 38%|███▊      | 15/40 [38:54<1:05:05, 156.21s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19, 22], device='cuda:0')\n",
      "tensor([17, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:45:46.624184, [-WARN]: Epoch 15, loss: 0.8415\n",
      "Time:2025-04-01 02:45:46.657128, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 02:45:46.764354, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 40%|████      | 16/40 [41:25<1:01:48, 154.52s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 20], device='cuda:0')\n",
      "tensor([ 1, 24], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:48:16.856070, [-WARN]: Epoch 16, loss: 0.8442\n",
      "Time:2025-04-01 02:48:16.888712, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 02:48:17.006611, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 42%|████▎     | 17/40 [43:55<58:44, 153.23s/it]  "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  4], device='cuda:0')\n",
      "tensor([23,  4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:50:56.894724, [-WARN]: Epoch 17, loss: 0.8425\n",
      "Time:2025-04-01 02:50:56.923911, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 02:50:57.037802, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 45%|████▌     | 18/40 [46:35<56:56, 155.28s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16, 19], device='cuda:0')\n",
      "tensor([16, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:53:35.814752, [-WARN]: Epoch 18, loss: 0.8441\n",
      "Time:2025-04-01 02:53:35.846799, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 02:53:35.967694, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 48%|████▊     | 19/40 [49:14<54:43, 156.37s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10, 25], device='cuda:0')\n",
      "tensor([ 6, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:56:13.734793, [-WARN]: Epoch 19, loss: 0.8434\n",
      "Time:2025-04-01 02:56:13.766583, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 02:56:13.884471, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 50%|█████     | 20/40 [51:52<52:16, 156.84s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([21, 25], device='cuda:0')\n",
      "tensor([21, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 02:58:48.913358, [-WARN]: Epoch 20, loss: 0.8393\n",
      "Time:2025-04-01 02:58:48.948882, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 02:58:49.063889, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 52%|█████▎    | 21/40 [54:27<49:30, 156.34s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22,  1], device='cuda:0')\n",
      "tensor([16,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:01:26.283677, [-WARN]: Epoch 21, loss: 0.8455\n",
      "Time:2025-04-01 03:01:26.309259, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 03:01:26.411286, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 55%|█████▌    | 22/40 [57:04<46:59, 156.64s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 12], device='cuda:0')\n",
      "tensor([1, 8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:04:09.930954, [-WARN]: Epoch 22, loss: 0.8447\n",
      "Time:2025-04-01 03:04:09.962810, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 03:04:10.079729, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 57%|█████▊    | 23/40 [59:48<44:58, 158.75s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([21, 20], device='cuda:0')\n",
      "tensor([21, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:06:49.203796, [-WARN]: Epoch 23, loss: 0.8431\n",
      "Time:2025-04-01 03:06:49.236134, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 03:06:49.354473, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 60%|██████    | 24/40 [1:02:27<42:22, 158.91s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 16], device='cuda:0')\n",
      "tensor([ 1, 20], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:09:24.937437, [-WARN]: Epoch 24, loss: 0.8431\n",
      "Time:2025-04-01 03:09:24.969155, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 03:09:25.085591, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 62%|██████▎   | 25/40 [1:05:03<39:29, 157.95s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19, 17], device='cuda:0')\n",
      "tensor([23, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:11:57.577187, [-WARN]: Epoch 25, loss: 0.8395\n",
      "Time:2025-04-01 03:11:57.613070, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 03:11:57.733338, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 65%|██████▌   | 26/40 [1:07:35<36:29, 156.36s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18, 23], device='cuda:0')\n",
      "tensor([22, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:14:33.426607, [-WARN]: Epoch 26, loss: 0.8459\n",
      "Time:2025-04-01 03:14:33.447347, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 03:14:33.548858, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 68%|██████▊   | 27/40 [1:10:11<33:50, 156.20s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([20, 17], device='cuda:0')\n",
      "tensor([18, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:17:10.283192, [-WARN]: Epoch 27, loss: 0.8439\n",
      "Time:2025-04-01 03:17:10.316207, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 03:17:10.434046, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 70%|███████   | 28/40 [1:12:48<31:16, 156.40s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 15], device='cuda:0')\n",
      "tensor([ 4, 15], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:19:38.230490, [-WARN]: Epoch 28, loss: 0.8368\n",
      "Time:2025-04-01 03:19:38.266271, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 03:19:38.384668, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 72%|███████▎  | 29/40 [1:15:16<28:12, 153.87s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19, 18], device='cuda:0')\n",
      "tensor([19, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:22:15.345923, [-WARN]: Epoch 29, loss: 0.8426\n",
      "Time:2025-04-01 03:22:15.380092, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 03:22:15.497829, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 75%|███████▌  | 30/40 [1:17:53<25:48, 154.84s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 10], device='cuda:0')\n",
      "tensor([21, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:24:57.359344, [-WARN]: Epoch 30, loss: 0.8465\n",
      "Time:2025-04-01 03:24:57.397911, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 03:24:57.528554, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 78%|███████▊  | 31/40 [1:20:35<23:32, 157.00s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([21,  1], device='cuda:0')\n",
      "tensor([21,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:27:31.914378, [-WARN]: Epoch 31, loss: 0.8404\n",
      "Time:2025-04-01 03:27:31.951207, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 03:27:32.071338, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 80%|████████  | 32/40 [1:23:10<20:50, 156.26s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([0, 8], device='cuda:0')\n",
      "tensor([18,  8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:30:08.392319, [-WARN]: Epoch 32, loss: 0.8450\n",
      "Time:2025-04-01 03:30:08.425384, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 03:30:08.534380, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 82%|████████▎ | 33/40 [1:25:46<18:14, 156.32s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 25], device='cuda:0')\n",
      "tensor([10, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:32:39.661942, [-WARN]: Epoch 33, loss: 0.8462\n",
      "Time:2025-04-01 03:32:39.732689, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 03:32:39.832593, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 85%|████████▌ | 34/40 [1:28:18<15:28, 154.81s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 0, 15], device='cuda:0')\n",
      "tensor([ 0, 15], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:35:15.282952, [-WARN]: Epoch 34, loss: 0.8450\n",
      "Time:2025-04-01 03:35:15.319000, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 03:35:15.441637, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 88%|████████▊ | 35/40 [1:30:53<12:55, 155.05s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([12, 25], device='cuda:0')\n",
      "tensor([12, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:37:44.167014, [-WARN]: Epoch 35, loss: 0.8484\n",
      "Time:2025-04-01 03:37:44.199193, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 03:37:44.317275, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 90%|█████████ | 36/40 [1:33:22<10:12, 153.20s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([12,  4], device='cuda:0')\n",
      "tensor([8, 4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:40:22.163924, [-WARN]: Epoch 36, loss: 0.8435\n",
      "Time:2025-04-01 03:40:22.196633, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 03:40:22.311893, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 92%|█████████▎| 37/40 [1:36:00<07:43, 154.64s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 12], device='cuda:0')\n",
      "tensor([12, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:43:01.792410, [-WARN]: Epoch 37, loss: 0.8382\n",
      "Time:2025-04-01 03:43:01.861354, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 03:43:01.964481, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 95%|█████████▌| 38/40 [1:38:40<05:12, 156.14s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10,  0], device='cuda:0')\n",
      "tensor([10,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:45:42.540218, [-WARN]: Epoch 38, loss: 0.8474\n",
      "Time:2025-04-01 03:45:42.573902, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 03:45:42.696008, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      " 98%|█████████▊| 39/40 [1:41:20<02:37, 157.52s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 1], device='cuda:0')\n",
      "tensor([1, 1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:48:16.027439, [-WARN]: Epoch 39, loss: 0.8424\n",
      "Time:2025-04-01 03:48:16.059005, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 03:48:16.173692, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/ well.\n",
      "100%|██████████| 40/40 [1:43:54<00:00, 155.86s/it]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([13, 21], device='cuda:0')\n",
      "tensor([ 0, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:48:16.463560, [-WARN]: Load model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/gnn_model.pkl well.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "####################################################################################################\n",
      "Now begin new experiment with the following model parameter!\n",
      "{'latent_feature_length': 100, 'nb_layer': 2}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=100，out_feats=100,num_heads=2\n",
      "Build GAT : in_feats=200，out_feats=200,num_heads=1\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  0%|          | 0/40 [00:00<?, ?it/s]Time:2025-04-01 03:50:48.954386, [-WARN]: Epoch 0, loss: 1.6480\n",
      "Time:2025-04-01 03:50:49.005933, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 03:50:49.136225, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      "  2%|▎         | 1/40 [02:32<1:39:14, 152.67s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 0], device='cuda:0')\n",
      "tensor([12,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:53:25.080402, [-WARN]: Epoch 1, loss: 1.6447\n",
      "Time:2025-04-01 03:53:25.115094, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 03:53:25.233679, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      "  5%|▌         | 2/40 [05:08<1:37:58, 154.69s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 13], device='cuda:0')\n",
      "tensor([10, 11], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:55:58.468687, [-WARN]: Epoch 2, loss: 1.6584\n",
      "Time:2025-04-01 03:55:58.507344, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 03:55:58.627950, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      "  8%|▊         | 3/40 [07:42<1:35:01, 154.10s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 23], device='cuda:0')\n",
      "tensor([14, 10], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 03:58:32.821402, [-WARN]: Epoch 3, loss: 1.6494\n",
      "Time:2025-04-01 03:58:32.854611, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 03:58:32.976019, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 10%|█         | 4/40 [10:16<1:32:31, 154.20s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([4, 8], device='cuda:0')\n",
      "tensor([ 4, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:01:09.556588, [-WARN]: Epoch 4, loss: 1.6523\n",
      "Time:2025-04-01 04:01:09.587575, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 04:01:09.707997, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 12%|█▎        | 5/40 [12:53<1:30:28, 155.11s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([12, 15], device='cuda:0')\n",
      "tensor([ 6, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:03:51.923410, [-WARN]: Epoch 5, loss: 1.6461\n",
      "Time:2025-04-01 04:03:51.957514, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 04:03:52.084032, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 15%|█▌        | 6/40 [15:35<1:29:17, 157.58s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17, 16], device='cuda:0')\n",
      "tensor([19,  7], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:06:30.022142, [-WARN]: Epoch 6, loss: 1.6443\n",
      "Time:2025-04-01 04:06:30.059378, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:06:30.185229, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 18%|█▊        | 7/40 [18:13<1:26:45, 157.75s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([0, 4], device='cuda:0')\n",
      "tensor([24,  4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:09:12.349100, [-WARN]: Epoch 7, loss: 1.6474\n",
      "Time:2025-04-01 04:09:12.382219, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:09:12.504395, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 20%|██        | 8/40 [20:56<1:24:54, 159.21s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 17], device='cuda:0')\n",
      "tensor([25, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:11:55.457642, [-WARN]: Epoch 8, loss: 1.6520\n",
      "Time:2025-04-01 04:11:55.490297, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:11:55.611452, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 22%|██▎       | 9/40 [23:39<1:22:53, 160.42s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 16], device='cuda:0')\n",
      "tensor([25, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:14:35.236299, [-WARN]: Epoch 9, loss: 1.6487\n",
      "Time:2025-04-01 04:14:35.306909, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:14:35.404144, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 25%|██▌       | 10/40 [26:18<1:20:06, 160.23s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16,  0], device='cuda:0')\n",
      "tensor([22,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:17:17.312793, [-WARN]: Epoch 10, loss: 1.6522\n",
      "Time:2025-04-01 04:17:17.380486, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:17:17.482406, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 28%|██▊       | 11/40 [29:01<1:17:43, 160.80s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 0], device='cuda:0')\n",
      "tensor([14,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:19:43.469685, [-WARN]: Epoch 11, loss: 1.6465\n",
      "Time:2025-04-01 04:19:43.501569, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:19:43.620782, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 30%|███       | 12/40 [31:27<1:12:57, 156.34s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22, 17], device='cuda:0')\n",
      "tensor([16, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:22:21.337706, [-WARN]: Epoch 12, loss: 1.6464\n",
      "Time:2025-04-01 04:22:21.374052, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:22:21.498681, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 32%|███▎      | 13/40 [34:05<1:10:33, 156.80s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 13], device='cuda:0')\n",
      "tensor([ 1, 24], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:24:56.952450, [-WARN]: Epoch 13, loss: 1.6475\n",
      "Time:2025-04-01 04:24:56.990141, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 04:24:57.114549, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 35%|███▌      | 14/40 [36:40<1:07:47, 156.44s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 17], device='cuda:0')\n",
      "tensor([ 8, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:27:38.833183, [-WARN]: Epoch 14, loss: 1.6461\n",
      "Time:2025-04-01 04:27:38.901425, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:27:39.002870, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 38%|███▊      | 15/40 [39:22<1:05:52, 158.09s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22,  0], device='cuda:0')\n",
      "tensor([0, 0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:30:14.366597, [-WARN]: Epoch 15, loss: 1.6481\n",
      "Time:2025-04-01 04:30:14.399434, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:30:14.517664, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 40%|████      | 16/40 [41:58<1:02:55, 157.31s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([14, 15], device='cuda:0')\n",
      "tensor([ 4, 15], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:32:47.069149, [-WARN]: Epoch 16, loss: 1.6443\n",
      "Time:2025-04-01 04:32:47.105282, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:32:47.224603, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 42%|████▎     | 17/40 [44:30<59:46, 155.93s/it]  "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 16], device='cuda:0')\n",
      "tensor([25, 24], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:35:19.846984, [-WARN]: Epoch 17, loss: 1.6553\n",
      "Time:2025-04-01 04:35:19.882430, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:35:20.001159, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 45%|████▌     | 18/40 [47:03<56:49, 154.98s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 25], device='cuda:0')\n",
      "tensor([23, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:38:00.548846, [-WARN]: Epoch 18, loss: 1.6411\n",
      "Time:2025-04-01 04:38:00.581838, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 04:38:00.703684, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 48%|████▊     | 19/40 [49:44<54:50, 156.70s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 23], device='cuda:0')\n",
      "tensor([19, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:40:35.573733, [-WARN]: Epoch 19, loss: 1.6603\n",
      "Time:2025-04-01 04:40:35.608981, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:40:35.728250, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 50%|█████     | 20/40 [52:19<52:03, 156.20s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 4], device='cuda:0')\n",
      "tensor([12,  4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:43:13.696843, [-WARN]: Epoch 20, loss: 1.6490\n",
      "Time:2025-04-01 04:43:13.761889, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 04:43:13.854867, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 52%|█████▎    | 21/40 [54:57<49:38, 156.78s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 0], device='cuda:0')\n",
      "tensor([1, 0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:45:52.151985, [-WARN]: Epoch 21, loss: 1.6514\n",
      "Time:2025-04-01 04:45:52.187925, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 04:45:52.303701, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 55%|█████▌    | 22/40 [57:35<47:11, 157.28s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 4], device='cuda:0')\n",
      "tensor([6, 6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:48:32.751314, [-WARN]: Epoch 22, loss: 1.6560\n",
      "Time:2025-04-01 04:48:32.783688, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 04:48:32.901464, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 57%|█████▊    | 23/40 [1:00:16<44:50, 158.27s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 23], device='cuda:0')\n",
      "tensor([17, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:51:13.878763, [-WARN]: Epoch 23, loss: 1.6489\n",
      "Time:2025-04-01 04:51:13.917124, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:51:14.054909, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 60%|██████    | 24/40 [1:02:57<42:26, 159.14s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 4], device='cuda:0')\n",
      "tensor([1, 2], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:53:47.308108, [-WARN]: Epoch 24, loss: 1.6452\n",
      "Time:2025-04-01 04:53:47.343483, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 04:53:47.465700, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 62%|██████▎   | 25/40 [1:05:30<39:21, 157.42s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22, 25], device='cuda:0')\n",
      "tensor([16,  4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:56:27.204301, [-WARN]: Epoch 25, loss: 1.6497\n",
      "Time:2025-04-01 04:56:27.237584, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:56:27.341486, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 65%|██████▌   | 26/40 [1:08:10<36:54, 158.16s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 23], device='cuda:0')\n",
      "tensor([ 1, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 04:58:58.229438, [-WARN]: Epoch 26, loss: 1.6451\n",
      "Time:2025-04-01 04:58:58.265227, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 04:58:58.378147, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 68%|██████▊   | 27/40 [1:10:41<33:48, 156.02s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17,  1], device='cuda:0')\n",
      "tensor([12,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:01:28.836476, [-WARN]: Epoch 27, loss: 1.6518\n",
      "Time:2025-04-01 05:01:28.869112, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 05:01:28.989899, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 70%|███████   | 28/40 [1:13:12<30:52, 154.40s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  7], device='cuda:0')\n",
      "tensor([17, 20], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:03:56.618532, [-WARN]: Epoch 28, loss: 1.6476\n",
      "Time:2025-04-01 05:03:56.649662, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 05:03:56.769544, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 72%|███████▎  | 29/40 [1:15:40<27:56, 152.41s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22,  8], device='cuda:0')\n",
      "tensor([22,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:06:35.021388, [-WARN]: Epoch 29, loss: 1.6542\n",
      "Time:2025-04-01 05:06:35.053217, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 05:06:35.170469, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 75%|███████▌  | 30/40 [1:18:18<25:42, 154.21s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 22], device='cuda:0')\n",
      "tensor([10, 20], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:09:00.785811, [-WARN]: Epoch 30, loss: 1.6551\n",
      "Time:2025-04-01 05:09:00.817312, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 05:09:00.933400, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 78%|███████▊  | 31/40 [1:20:44<22:45, 151.68s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17, 25], device='cuda:0')\n",
      "tensor([23, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:11:36.043775, [-WARN]: Epoch 31, loss: 1.6469\n",
      "Time:2025-04-01 05:11:36.080483, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 05:11:36.196167, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 80%|████████  | 32/40 [1:23:19<20:22, 152.75s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 10], device='cuda:0')\n",
      "tensor([ 6, 14], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:14:08.117710, [-WARN]: Epoch 32, loss: 1.6495\n",
      "Time:2025-04-01 05:14:08.150398, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 05:14:08.269597, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 82%|████████▎ | 33/40 [1:25:51<17:47, 152.55s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 17], device='cuda:0')\n",
      "tensor([ 8, 10], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:16:47.296944, [-WARN]: Epoch 33, loss: 1.6532\n",
      "Time:2025-04-01 05:16:47.329945, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 05:16:47.450373, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 85%|████████▌ | 34/40 [1:28:30<15:27, 154.54s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10, 23], device='cuda:0')\n",
      "tensor([23, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:19:24.336912, [-WARN]: Epoch 34, loss: 1.6472\n",
      "Time:2025-04-01 05:19:24.370387, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 05:19:24.490415, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 88%|████████▊ | 35/40 [1:31:08<12:56, 155.29s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  8], device='cuda:0')\n",
      "tensor([6, 6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:21:54.813494, [-WARN]: Epoch 35, loss: 1.6446\n",
      "Time:2025-04-01 05:21:54.847491, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 05:21:54.981518, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 90%|█████████ | 36/40 [1:33:38<10:15, 153.85s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([4, 1], device='cuda:0')\n",
      "tensor([4, 1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:24:30.664170, [-WARN]: Epoch 36, loss: 1.6480\n",
      "Time:2025-04-01 05:24:30.696870, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 05:24:30.817400, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 92%|█████████▎| 37/40 [1:36:14<07:43, 154.45s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16, 10], device='cuda:0')\n",
      "tensor([17, 14], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:27:12.104178, [-WARN]: Epoch 37, loss: 1.6488\n",
      "Time:2025-04-01 05:27:12.129106, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 05:27:12.234493, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 95%|█████████▌| 38/40 [1:38:55<05:13, 156.54s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 25], device='cuda:0')\n",
      "tensor([19, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:29:52.168488, [-WARN]: Epoch 38, loss: 1.6481\n",
      "Time:2025-04-01 05:29:52.235347, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 05:29:52.338845, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      " 98%|█████████▊| 39/40 [1:41:35<02:37, 157.61s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22,  0], device='cuda:0')\n",
      "tensor([20,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:32:25.400462, [-WARN]: Epoch 39, loss: 1.6490\n",
      "Time:2025-04-01 05:32:25.432385, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 05:32:25.552198, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/ well.\n",
      "100%|██████████| 40/40 [1:44:09<00:00, 156.23s/it]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([15, 22], device='cuda:0')\n",
      "tensor([15, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:32:25.843351, [-WARN]: Load model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/gnn_model.pkl well.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "####################################################################################################\n",
      "Now begin new experiment with the following model parameter!\n",
      "{'latent_feature_length': 120, 'nb_layer': 2}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=120，out_feats=120,num_heads=2\n",
      "Build GAT : in_feats=240，out_feats=240,num_heads=1\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  0%|          | 0/40 [00:00<?, ?it/s]Time:2025-04-01 05:34:57.009466, [-WARN]: Epoch 0, loss: 1.5209\n",
      "Time:2025-04-01 05:34:57.046126, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 05:34:57.158248, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      "  2%|▎         | 1/40 [02:31<1:38:21, 151.31s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16, 23], device='cuda:0')\n",
      "tensor([16, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:37:34.975939, [-WARN]: Epoch 1, loss: 1.5216\n",
      "Time:2025-04-01 05:37:35.012302, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 05:37:35.130217, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      "  5%|▌         | 2/40 [05:09<1:38:18, 155.23s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 23], device='cuda:0')\n",
      "tensor([21, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:40:11.809001, [-WARN]: Epoch 2, loss: 1.5222\n",
      "Time:2025-04-01 05:40:11.844108, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 05:40:11.968885, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      "  8%|▊         | 3/40 [07:46<1:36:10, 155.96s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10, 18], device='cuda:0')\n",
      "tensor([12, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:42:46.282521, [-WARN]: Epoch 3, loss: 1.5238\n",
      "Time:2025-04-01 05:42:46.323423, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 05:42:46.450771, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 10%|█         | 4/40 [10:20<1:33:13, 155.38s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([7, 7], device='cuda:0')\n",
      "tensor([9, 7], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:45:25.040512, [-WARN]: Epoch 4, loss: 1.5229\n",
      "Time:2025-04-01 05:45:25.079835, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 05:45:25.201857, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 12%|█▎        | 5/40 [12:59<1:31:20, 156.59s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 13], device='cuda:0')\n",
      "tensor([21, 13], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:48:07.534849, [-WARN]: Epoch 5, loss: 1.5202\n",
      "Time:2025-04-01 05:48:07.573969, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 05:48:07.702408, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 15%|█▌        | 6/40 [15:41<1:29:52, 158.60s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10, 15], device='cuda:0')\n",
      "tensor([10, 15], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:50:47.978519, [-WARN]: Epoch 6, loss: 1.5222\n",
      "Time:2025-04-01 05:50:48.016577, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 05:50:48.137059, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 18%|█▊        | 7/40 [18:22<1:27:33, 159.20s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25,  1], device='cuda:0')\n",
      "tensor([21,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:53:26.804702, [-WARN]: Epoch 7, loss: 1.5241\n",
      "Time:2025-04-01 05:53:26.836959, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 05:53:26.961537, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 20%|██        | 8/40 [21:01<1:24:50, 159.08s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 13], device='cuda:0')\n",
      "tensor([ 4, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:56:01.868145, [-WARN]: Epoch 8, loss: 1.5236\n",
      "Time:2025-04-01 05:56:01.900132, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 05:56:02.021935, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 22%|██▎       | 9/40 [23:36<1:21:32, 157.82s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 10], device='cuda:0')\n",
      "tensor([ 5, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 05:58:42.505031, [-WARN]: Epoch 9, loss: 1.5220\n",
      "Time:2025-04-01 05:58:42.536926, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 05:58:42.659855, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 25%|██▌       | 10/40 [26:16<1:19:20, 158.69s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  4], device='cuda:0')\n",
      "tensor([21,  4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:01:24.752554, [-WARN]: Epoch 10, loss: 1.5289\n",
      "Time:2025-04-01 06:01:24.784784, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 06:01:24.908470, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 28%|██▊       | 11/40 [28:59<1:17:13, 159.78s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 12], device='cuda:0')\n",
      "tensor([23,  8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:04:04.801529, [-WARN]: Epoch 11, loss: 1.5186\n",
      "Time:2025-04-01 06:04:04.836668, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 06:04:04.959272, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 30%|███       | 12/40 [31:39<1:14:36, 159.86s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 23], device='cuda:0')\n",
      "tensor([25, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:06:38.654583, [-WARN]: Epoch 12, loss: 1.5216\n",
      "Time:2025-04-01 06:06:38.689899, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 06:06:38.810439, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 32%|███▎      | 13/40 [34:12<1:11:07, 158.04s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22, 16], device='cuda:0')\n",
      "tensor([18, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:09:12.488484, [-WARN]: Epoch 13, loss: 1.5261\n",
      "Time:2025-04-01 06:09:12.530935, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 06:09:12.677394, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 35%|███▌      | 14/40 [36:46<1:07:56, 156.78s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 10], device='cuda:0')\n",
      "tensor([ 1, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:11:48.924666, [-WARN]: Epoch 14, loss: 1.5210\n",
      "Time:2025-04-01 06:11:48.957153, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 06:11:49.074551, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 38%|███▊      | 15/40 [39:23<1:05:16, 156.67s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 16], device='cuda:0')\n",
      "tensor([25,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:14:24.438099, [-WARN]: Epoch 15, loss: 1.5240\n",
      "Time:2025-04-01 06:14:24.472884, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 06:14:24.604178, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 40%|████      | 16/40 [41:58<1:02:31, 156.32s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22, 19], device='cuda:0')\n",
      "tensor([18, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:16:55.686720, [-WARN]: Epoch 16, loss: 1.5217\n",
      "Time:2025-04-01 06:16:55.727063, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 06:16:55.852418, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 42%|████▎     | 17/40 [44:30<59:20, 154.80s/it]  "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 10], device='cuda:0')\n",
      "tensor([1, 6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:19:30.822566, [-WARN]: Epoch 17, loss: 1.5166\n",
      "Time:2025-04-01 06:19:30.852553, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 06:19:30.977581, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 45%|████▌     | 18/40 [47:05<56:47, 154.90s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16,  8], device='cuda:0')\n",
      "tensor([16,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:21:59.822578, [-WARN]: Epoch 18, loss: 1.5268\n",
      "Time:2025-04-01 06:21:59.855426, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 06:21:59.978768, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 48%|████▊     | 19/40 [49:34<53:35, 153.13s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10,  1], device='cuda:0')\n",
      "tensor([8, 1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:24:36.930439, [-WARN]: Epoch 19, loss: 1.5224\n",
      "Time:2025-04-01 06:24:36.966833, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 06:24:37.091665, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 50%|█████     | 20/40 [52:11<51:26, 154.32s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10,  1], device='cuda:0')\n",
      "tensor([6, 1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:27:17.849656, [-WARN]: Epoch 20, loss: 1.5227\n",
      "Time:2025-04-01 06:27:17.884938, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 06:27:18.035831, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 52%|█████▎    | 21/40 [54:52<49:29, 156.31s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([0, 1], device='cuda:0')\n",
      "tensor([0, 1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:29:52.058615, [-WARN]: Epoch 21, loss: 1.5204\n",
      "Time:2025-04-01 06:29:52.089664, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 06:29:52.213240, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 55%|█████▌    | 22/40 [57:26<46:42, 155.67s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17, 16], device='cuda:0')\n",
      "tensor([17, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:32:27.565261, [-WARN]: Epoch 22, loss: 1.5260\n",
      "Time:2025-04-01 06:32:27.600631, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 06:32:27.720446, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 57%|█████▊    | 23/40 [1:00:01<44:05, 155.62s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 0], device='cuda:0')\n",
      "tensor([1, 1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:35:04.277340, [-WARN]: Epoch 23, loss: 1.5257\n",
      "Time:2025-04-01 06:35:04.305319, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 06:35:04.433936, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 60%|██████    | 24/40 [1:02:38<41:35, 155.95s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16,  1], device='cuda:0')\n",
      "tensor([16,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:37:36.542141, [-WARN]: Epoch 24, loss: 1.5202\n",
      "Time:2025-04-01 06:37:36.574857, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 06:37:36.700317, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 62%|██████▎   | 25/40 [1:05:10<38:42, 154.84s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([15, 10], device='cuda:0')\n",
      "tensor([15,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:40:04.195358, [-WARN]: Epoch 25, loss: 1.5282\n",
      "Time:2025-04-01 06:40:04.226460, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 06:40:04.344366, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 65%|██████▌   | 26/40 [1:07:38<35:37, 152.68s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 13], device='cuda:0')\n",
      "tensor([ 4, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:42:41.113658, [-WARN]: Epoch 26, loss: 1.5200\n",
      "Time:2025-04-01 06:42:41.140061, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 06:42:41.247375, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 68%|██████▊   | 27/40 [1:10:15<33:21, 153.95s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 22], device='cuda:0')\n",
      "tensor([25, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:45:15.866413, [-WARN]: Epoch 27, loss: 1.5247\n",
      "Time:2025-04-01 06:45:15.950030, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 06:45:16.059765, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 70%|███████   | 28/40 [1:12:50<30:50, 154.21s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([0, 4], device='cuda:0')\n",
      "tensor([0, 4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:47:52.969000, [-WARN]: Epoch 28, loss: 1.5222\n",
      "Time:2025-04-01 06:47:52.996727, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 06:47:53.106029, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 72%|███████▎  | 29/40 [1:15:27<28:25, 155.06s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 4], device='cuda:0')\n",
      "tensor([1, 4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:50:24.970724, [-WARN]: Epoch 29, loss: 1.5240\n",
      "Time:2025-04-01 06:50:25.010106, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 06:50:25.180937, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 75%|███████▌  | 30/40 [1:17:59<25:41, 154.16s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 17], device='cuda:0')\n",
      "tensor([19, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:53:04.812609, [-WARN]: Epoch 30, loss: 1.5256\n",
      "Time:2025-04-01 06:53:04.883028, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 06:53:04.994979, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 78%|███████▊  | 31/40 [1:20:39<23:22, 155.86s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 0, 10], device='cuda:0')\n",
      "tensor([ 0, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:55:47.976059, [-WARN]: Epoch 31, loss: 1.5172\n",
      "Time:2025-04-01 06:55:48.008924, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 06:55:48.132362, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 80%|████████  | 32/40 [1:23:22<21:04, 158.04s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([24, 25], device='cuda:0')\n",
      "tensor([22, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 06:58:33.146039, [-WARN]: Epoch 32, loss: 1.5168\n",
      "Time:2025-04-01 06:58:33.181757, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 06:58:33.295920, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 82%|████████▎ | 33/40 [1:26:07<18:41, 160.18s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18, 22], device='cuda:0')\n",
      "tensor([16, 24], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:01:15.818516, [-WARN]: Epoch 33, loss: 1.5209\n",
      "Time:2025-04-01 07:01:15.851220, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 07:01:15.972505, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 85%|████████▌ | 34/40 [1:28:50<16:05, 160.93s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 17], device='cuda:0')\n",
      "tensor([12, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:03:53.676731, [-WARN]: Epoch 34, loss: 1.5208\n",
      "Time:2025-04-01 07:03:53.713665, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 07:03:53.836252, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 88%|████████▊ | 35/40 [1:31:27<13:20, 160.01s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 6, 10], device='cuda:0')\n",
      "tensor([12,  8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:06:35.916951, [-WARN]: Epoch 35, loss: 1.5274\n",
      "Time:2025-04-01 07:06:35.952274, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 07:06:36.078068, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 90%|█████████ | 36/40 [1:34:10<10:42, 160.68s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16,  0], device='cuda:0')\n",
      "tensor([22,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:09:07.851013, [-WARN]: Epoch 36, loss: 1.5206\n",
      "Time:2025-04-01 07:09:07.882678, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 07:09:08.002088, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 92%|█████████▎| 37/40 [1:36:42<07:54, 158.05s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22, 13], device='cuda:0')\n",
      "tensor([22, 13], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:11:46.306594, [-WARN]: Epoch 37, loss: 1.5159\n",
      "Time:2025-04-01 07:11:46.344313, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 07:11:46.471921, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 95%|█████████▌| 38/40 [1:39:20<05:16, 158.18s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([12,  0], device='cuda:0')\n",
      "tensor([ 6, 20], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:14:20.709542, [-WARN]: Epoch 38, loss: 1.5223\n",
      "Time:2025-04-01 07:14:20.744050, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 07:14:20.865170, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      " 98%|█████████▊| 39/40 [1:41:55<02:37, 157.04s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 15], device='cuda:0')\n",
      "tensor([19, 15], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:16:52.389072, [-WARN]: Epoch 39, loss: 1.5247\n",
      "Time:2025-04-01 07:16:52.429725, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 07:16:52.556146, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/ well.\n",
      "100%|██████████| 40/40 [1:44:26<00:00, 156.67s/it]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 23], device='cuda:0')\n",
      "tensor([ 4, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:16:52.869941, [-WARN]: Load model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/gnn_model.pkl well.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "####################################################################################################\n",
      "Now begin new experiment with the following model parameter!\n",
      "{'latent_feature_length': 140, 'nb_layer': 2}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=140，out_feats=140,num_heads=2\n",
      "Build GAT : in_feats=280，out_feats=280,num_heads=1\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  0%|          | 0/40 [00:00<?, ?it/s]Time:2025-04-01 07:19:32.273130, [-WARN]: Epoch 0, loss: 1.5871\n",
      "Time:2025-04-01 07:19:32.311307, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 07:19:32.440932, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      "  2%|▎         | 1/40 [02:39<1:43:43, 159.57s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 4], device='cuda:0')\n",
      "tensor([1, 2], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:22:16.495694, [-WARN]: Epoch 1, loss: 1.5801\n",
      "Time:2025-04-01 07:22:16.530989, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 07:22:16.656840, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      "  5%|▌         | 2/40 [05:23<1:42:47, 162.30s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22,  4], device='cuda:0')\n",
      "tensor([16,  4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:24:50.655874, [-WARN]: Epoch 2, loss: 1.5826\n",
      "Time:2025-04-01 07:24:50.690133, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 07:24:50.811070, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      "  8%|▊         | 3/40 [07:57<1:37:47, 158.58s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 23], device='cuda:0')\n",
      "tensor([ 8, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:27:25.935218, [-WARN]: Epoch 3, loss: 1.5872\n",
      "Time:2025-04-01 07:27:25.973118, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 07:27:26.097253, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 10%|█         | 4/40 [10:33<1:34:22, 157.28s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 22], device='cuda:0')\n",
      "tensor([1, 0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:30:04.041186, [-WARN]: Epoch 4, loss: 1.5779\n",
      "Time:2025-04-01 07:30:04.111150, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 07:30:04.213102, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 12%|█▎        | 5/40 [13:11<1:31:55, 157.58s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 0, 23], device='cuda:0')\n",
      "tensor([ 0, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:32:41.669150, [-WARN]: Epoch 5, loss: 1.5836\n",
      "Time:2025-04-01 07:32:41.700705, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 07:32:41.822326, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 15%|█▌        | 6/40 [15:48<1:29:18, 157.59s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 6], device='cuda:0')\n",
      "tensor([ 1, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:35:16.621971, [-WARN]: Epoch 6, loss: 1.5801\n",
      "Time:2025-04-01 07:35:16.654439, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 07:35:16.777571, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 18%|█▊        | 7/40 [18:23<1:26:12, 156.73s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22, 23], device='cuda:0')\n",
      "tensor([ 0, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:37:59.179735, [-WARN]: Epoch 7, loss: 1.5851\n",
      "Time:2025-04-01 07:37:59.213487, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 07:37:59.337371, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 20%|██        | 8/40 [21:06<1:24:34, 158.59s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 23], device='cuda:0')\n",
      "tensor([14, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:40:29.181790, [-WARN]: Epoch 8, loss: 1.5872\n",
      "Time:2025-04-01 07:40:29.216497, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 07:40:29.339817, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 22%|██▎       | 9/40 [23:36<1:20:32, 155.90s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 22], device='cuda:0')\n",
      "tensor([25, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:43:08.156463, [-WARN]: Epoch 9, loss: 1.5831\n",
      "Time:2025-04-01 07:43:08.192155, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 07:43:08.316103, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 25%|██▌       | 10/40 [26:15<1:18:25, 156.85s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 8], device='cuda:0')\n",
      "tensor([1, 8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:45:49.733441, [-WARN]: Epoch 10, loss: 1.5833\n",
      "Time:2025-04-01 07:45:49.765359, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 07:45:49.889932, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 28%|██▊       | 11/40 [28:57<1:16:30, 158.30s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 21], device='cuda:0')\n",
      "tensor([ 8, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:48:22.351066, [-WARN]: Epoch 11, loss: 1.5835\n",
      "Time:2025-04-01 07:48:22.383688, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 07:48:22.505391, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 30%|███       | 12/40 [31:29<1:13:03, 156.57s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 23], device='cuda:0')\n",
      "tensor([15, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:51:02.017937, [-WARN]: Epoch 12, loss: 1.5815\n",
      "Time:2025-04-01 07:51:02.056509, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 07:51:02.176497, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 32%|███▎      | 13/40 [34:09<1:10:52, 157.51s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 6, 17], device='cuda:0')\n",
      "tensor([ 6, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:53:40.918093, [-WARN]: Epoch 13, loss: 1.5843\n",
      "Time:2025-04-01 07:53:40.952352, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 07:53:41.080208, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 35%|███▌      | 14/40 [36:48<1:08:26, 157.93s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  8], device='cuda:0')\n",
      "tensor([23, 14], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:56:18.032664, [-WARN]: Epoch 14, loss: 1.5823\n",
      "Time:2025-04-01 07:56:18.072837, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 07:56:18.196776, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 38%|███▊      | 15/40 [39:25<1:05:42, 157.68s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  4], device='cuda:0')\n",
      "tensor([25, 20], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 07:58:59.792672, [-WARN]: Epoch 15, loss: 1.5749\n",
      "Time:2025-04-01 07:58:59.859031, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 07:58:59.950904, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 40%|████      | 16/40 [42:07<1:03:33, 158.91s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22,  0], device='cuda:0')\n",
      "tensor([22,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:01:39.091059, [-WARN]: Epoch 16, loss: 1.5817\n",
      "Time:2025-04-01 08:01:39.130956, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 08:01:39.250131, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 42%|████▎     | 17/40 [44:46<1:00:57, 159.03s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([15, 22], device='cuda:0')\n",
      "tensor([15,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:04:18.874845, [-WARN]: Epoch 17, loss: 1.5837\n",
      "Time:2025-04-01 08:04:18.943525, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 08:04:19.054614, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 45%|████▌     | 18/40 [47:26<58:23, 159.26s/it]  "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([0, 1], device='cuda:0')\n",
      "tensor([0, 1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:07:02.591349, [-WARN]: Epoch 18, loss: 1.5928\n",
      "Time:2025-04-01 08:07:02.623832, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 08:07:02.746073, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 48%|████▊     | 19/40 [50:09<56:12, 160.59s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  8], device='cuda:0')\n",
      "tensor([23,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:09:46.518878, [-WARN]: Epoch 19, loss: 1.5827\n",
      "Time:2025-04-01 08:09:46.551718, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 08:09:46.673083, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 50%|█████     | 20/40 [52:53<53:51, 161.59s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18,  0], device='cuda:0')\n",
      "tensor([22,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:12:30.804000, [-WARN]: Epoch 20, loss: 1.5884\n",
      "Time:2025-04-01 08:12:30.839303, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 08:12:30.957592, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 52%|█████▎    | 21/40 [55:38<51:25, 162.40s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 23], device='cuda:0')\n",
      "tensor([19, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:15:12.105629, [-WARN]: Epoch 21, loss: 1.5836\n",
      "Time:2025-04-01 08:15:12.138213, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 08:15:12.256498, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 55%|█████▌    | 22/40 [58:19<48:37, 162.07s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 22], device='cuda:0')\n",
      "tensor([ 1, 24], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:17:46.285836, [-WARN]: Epoch 22, loss: 1.5840\n",
      "Time:2025-04-01 08:17:46.320783, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 08:17:46.444471, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 57%|█████▊    | 23/40 [1:00:53<45:14, 159.70s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([21, 23], device='cuda:0')\n",
      "tensor([21, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:20:21.776192, [-WARN]: Epoch 23, loss: 1.5794\n",
      "Time:2025-04-01 08:20:21.811847, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 08:20:21.938922, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 60%|██████    | 24/40 [1:03:29<42:15, 158.44s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  8], device='cuda:0')\n",
      "tensor([17, 14], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:23:01.420404, [-WARN]: Epoch 24, loss: 1.5844\n",
      "Time:2025-04-01 08:23:01.455296, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 08:23:01.574669, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 62%|██████▎   | 25/40 [1:06:08<39:42, 158.80s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 4], device='cuda:0')\n",
      "tensor([8, 4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:25:35.681461, [-WARN]: Epoch 25, loss: 1.5837\n",
      "Time:2025-04-01 08:25:35.749011, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 08:25:35.851698, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 65%|██████▌   | 26/40 [1:08:42<36:44, 157.44s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18,  0], device='cuda:0')\n",
      "tensor([5, 0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:28:12.806655, [-WARN]: Epoch 26, loss: 1.5816\n",
      "Time:2025-04-01 08:28:12.842602, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 08:28:12.966361, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 68%|██████▊   | 27/40 [1:11:20<34:05, 157.34s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17,  6], device='cuda:0')\n",
      "tensor([ 8, 14], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:30:50.000909, [-WARN]: Epoch 27, loss: 1.5807\n",
      "Time:2025-04-01 08:30:50.026648, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 08:30:50.132299, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 70%|███████   | 28/40 [1:13:57<31:27, 157.29s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 8], device='cuda:0')\n",
      "tensor([ 1, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:33:29.115359, [-WARN]: Epoch 28, loss: 1.5844\n",
      "Time:2025-04-01 08:33:29.145788, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 08:33:29.267859, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 72%|███████▎  | 29/40 [1:16:36<28:56, 157.84s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 6, 23], device='cuda:0')\n",
      "tensor([ 6, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:36:09.764573, [-WARN]: Epoch 29, loss: 1.5835\n",
      "Time:2025-04-01 08:36:09.800590, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 08:36:09.924905, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 75%|███████▌  | 30/40 [1:19:17<26:26, 158.69s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17, 22], device='cuda:0')\n",
      "tensor([17, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:38:48.569436, [-WARN]: Epoch 30, loss: 1.5812\n",
      "Time:2025-04-01 08:38:48.601605, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 08:38:48.722698, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 78%|███████▊  | 31/40 [1:21:55<23:48, 158.72s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16,  1], device='cuda:0')\n",
      "tensor([22,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:41:29.129556, [-WARN]: Epoch 31, loss: 1.5804\n",
      "Time:2025-04-01 08:41:29.164693, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 08:41:29.284618, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 80%|████████  | 32/40 [1:24:36<21:14, 159.27s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([21,  6], device='cuda:0')\n",
      "tensor([25, 10], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:44:11.364842, [-WARN]: Epoch 32, loss: 1.5805\n",
      "Time:2025-04-01 08:44:11.396993, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 08:44:11.517171, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 82%|████████▎ | 33/40 [1:27:18<18:41, 160.16s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 21], device='cuda:0')\n",
      "tensor([ 6, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:46:46.567674, [-WARN]: Epoch 33, loss: 1.5794\n",
      "Time:2025-04-01 08:46:46.598425, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 08:46:46.720945, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 85%|████████▌ | 34/40 [1:29:53<15:52, 158.67s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([4, 1], device='cuda:0')\n",
      "tensor([4, 1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:49:14.556776, [-WARN]: Epoch 34, loss: 1.5817\n",
      "Time:2025-04-01 08:49:14.588392, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 08:49:14.710586, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 88%|████████▊ | 35/40 [1:32:21<12:57, 155.47s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 22], device='cuda:0')\n",
      "tensor([21, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:51:52.340926, [-WARN]: Epoch 35, loss: 1.5805\n",
      "Time:2025-04-01 08:51:52.378904, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 08:51:52.507444, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 90%|█████████ | 36/40 [1:34:59<10:24, 156.17s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 22], device='cuda:0')\n",
      "tensor([21, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:54:33.716916, [-WARN]: Epoch 36, loss: 1.5787\n",
      "Time:2025-04-01 08:54:33.754079, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 08:54:33.886066, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 92%|█████████▎| 37/40 [1:37:41<07:53, 157.73s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 22], device='cuda:0')\n",
      "tensor([12, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:57:15.099917, [-WARN]: Epoch 37, loss: 1.5832\n",
      "Time:2025-04-01 08:57:15.143432, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 08:57:15.266708, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 95%|█████████▌| 38/40 [1:40:22<05:17, 158.83s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22, 13], device='cuda:0')\n",
      "tensor([18, 13], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 08:59:57.506937, [-WARN]: Epoch 38, loss: 1.5801\n",
      "Time:2025-04-01 08:59:57.542794, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 08:59:57.666166, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      " 98%|█████████▊| 39/40 [1:43:04<02:39, 159.90s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([0, 4], device='cuda:0')\n",
      "tensor([22,  3], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:02:41.247339, [-WARN]: Epoch 39, loss: 1.5788\n",
      "Time:2025-04-01 09:02:41.281051, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 09:02:41.404392, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/ well.\n",
      "100%|██████████| 40/40 [1:45:48<00:00, 158.71s/it]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  8], device='cuda:0')\n",
      "tensor([23,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:02:41.655442, [-WARN]: Load empty model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/gnn_model.pkl.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "####################################################################################################\n",
      "Now begin new experiment with the following model parameter!\n",
      "{'latent_feature_length': 100, 'nb_layer': 1}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=100，out_feats=100,num_heads=1\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  0%|          | 0/40 [00:00<?, ?it/s]Time:2025-04-01 09:04:52.985695, [-WARN]: Epoch 0, loss: 2.0403\n",
      "Time:2025-04-01 09:04:53.016990, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 09:04:53.104760, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      "  2%|▎         | 1/40 [02:11<1:25:26, 131.44s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 8], device='cuda:0')\n",
      "tensor([ 1, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:07:02.333562, [-WARN]: Epoch 1, loss: 1.3183\n",
      "Time:2025-04-01 09:07:02.364303, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 09:07:02.489268, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      "  5%|▌         | 2/40 [04:20<1:22:28, 130.23s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([11, 16], device='cuda:0')\n",
      "tensor([ 7, 24], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:09:11.465582, [-WARN]: Epoch 2, loss: 1.1356\n",
      "Time:2025-04-01 09:09:11.495880, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 09:09:11.618246, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      "  8%|▊         | 3/40 [06:29<1:19:59, 129.73s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22, 22], device='cuda:0')\n",
      "tensor([24, 20], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:11:22.067407, [-WARN]: Epoch 3, loss: 1.0184\n",
      "Time:2025-04-01 09:11:22.097912, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 09:11:22.222463, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 10%|█         | 4/40 [08:40<1:18:02, 130.07s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 11], device='cuda:0')\n",
      "tensor([1, 5], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:13:31.744711, [-WARN]: Epoch 4, loss: 0.9334\n",
      "Time:2025-04-01 09:13:31.773685, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 09:13:31.889526, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 12%|█▎        | 5/40 [10:50<1:15:47, 129.93s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22, 25], device='cuda:0')\n",
      "tensor([22, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:15:35.092445, [-WARN]: Epoch 5, loss: 0.8775\n",
      "Time:2025-04-01 09:15:35.116925, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 09:15:35.222318, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 15%|█▌        | 6/40 [12:53<1:12:21, 127.69s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 11], device='cuda:0')\n",
      "tensor([12,  9], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:17:41.544388, [-WARN]: Epoch 6, loss: 0.8429\n",
      "Time:2025-04-01 09:17:41.574610, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 09:17:41.683860, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 18%|█▊        | 7/40 [15:00<1:10:00, 127.29s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  1], device='cuda:0')\n",
      "tensor([19,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:19:49.562167, [-WARN]: Epoch 7, loss: 0.8157\n",
      "Time:2025-04-01 09:19:49.592821, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 09:19:49.713038, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 20%|██        | 8/40 [17:08<1:08:00, 127.52s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25,  8], device='cuda:0')\n",
      "tensor([25, 14], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:21:56.932884, [-WARN]: Epoch 8, loss: 0.7940\n",
      "Time:2025-04-01 09:21:56.963176, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 09:21:57.085163, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 22%|██▎       | 9/40 [19:15<1:05:51, 127.48s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17, 16], device='cuda:0')\n",
      "tensor([23, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:24:04.606960, [-WARN]: Epoch 9, loss: 0.7776\n",
      "Time:2025-04-01 09:24:04.632939, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 09:24:04.748738, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 25%|██▌       | 10/40 [21:23<1:03:46, 127.53s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25,  6], device='cuda:0')\n",
      "tensor([21, 10], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:26:15.422624, [-WARN]: Epoch 10, loss: 0.7565\n",
      "Time:2025-04-01 09:26:15.493083, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 09:26:15.588991, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 28%|██▊       | 11/40 [23:33<1:02:07, 128.55s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  0], device='cuda:0')\n",
      "tensor([23,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:28:24.559864, [-WARN]: Epoch 11, loss: 0.7466\n",
      "Time:2025-04-01 09:28:24.590188, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 09:28:24.710009, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 30%|███       | 12/40 [25:43<1:00:04, 128.72s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18,  8], device='cuda:0')\n",
      "tensor([24,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:30:32.870304, [-WARN]: Epoch 12, loss: 0.7345\n",
      "Time:2025-04-01 09:30:32.904171, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 09:30:33.026881, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 32%|███▎      | 13/40 [27:51<57:52, 128.60s/it]  "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17, 23], device='cuda:0')\n",
      "tensor([17, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:32:43.379742, [-WARN]: Epoch 13, loss: 0.7223\n",
      "Time:2025-04-01 09:32:43.411435, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 09:32:43.526523, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 35%|███▌      | 14/40 [30:01<55:58, 129.17s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10,  8], device='cuda:0')\n",
      "tensor([ 8, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:34:47.468779, [-WARN]: Epoch 14, loss: 0.7105\n",
      "Time:2025-04-01 09:34:47.500838, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 09:34:47.613810, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 38%|███▊      | 15/40 [32:05<53:10, 127.64s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([0, 7], device='cuda:0')\n",
      "tensor([0, 7], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:36:56.620865, [-WARN]: Epoch 15, loss: 0.6975\n",
      "Time:2025-04-01 09:36:56.652738, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 09:36:56.773329, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 40%|████      | 16/40 [34:15<51:14, 128.10s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19,  8], device='cuda:0')\n",
      "tensor([19, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:39:08.859510, [-WARN]: Epoch 16, loss: 0.6963\n",
      "Time:2025-04-01 09:39:08.889952, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 09:39:09.010404, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 42%|████▎     | 17/40 [36:27<49:34, 129.34s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 24], device='cuda:0')\n",
      "tensor([17, 24], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:41:18.137818, [-WARN]: Epoch 17, loss: 0.6741\n",
      "Time:2025-04-01 09:41:18.170563, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 09:41:18.293558, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 45%|████▌     | 18/40 [38:36<47:25, 129.33s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 0, 19], device='cuda:0')\n",
      "tensor([ 0, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:43:28.541607, [-WARN]: Epoch 18, loss: 0.6712\n",
      "Time:2025-04-01 09:43:28.569313, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 09:43:28.694478, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 48%|████▊     | 19/40 [40:47<45:22, 129.65s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 17], device='cuda:0')\n",
      "tensor([ 8, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:45:33.306010, [-WARN]: Epoch 19, loss: 0.6562\n",
      "Time:2025-04-01 09:45:33.333240, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 09:45:33.439930, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 50%|█████     | 20/40 [42:51<42:43, 128.18s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 25], device='cuda:0')\n",
      "tensor([ 1, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:47:46.326188, [-WARN]: Epoch 20, loss: 0.6452\n",
      "Time:2025-04-01 09:47:46.352735, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 09:47:46.464922, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 52%|█████▎    | 21/40 [45:04<41:02, 129.63s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([24,  1], device='cuda:0')\n",
      "tensor([24,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:49:57.027759, [-WARN]: Epoch 21, loss: 0.6341\n",
      "Time:2025-04-01 09:49:57.057307, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 09:49:57.179850, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 55%|█████▌    | 22/40 [47:15<38:59, 129.96s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 20], device='cuda:0')\n",
      "tensor([ 8, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:52:08.426034, [-WARN]: Epoch 22, loss: 0.6194\n",
      "Time:2025-04-01 09:52:08.460293, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 09:52:08.584609, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 57%|█████▊    | 23/40 [49:26<36:56, 130.39s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17, 16], device='cuda:0')\n",
      "tensor([17, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:54:17.468680, [-WARN]: Epoch 23, loss: 0.6189\n",
      "Time:2025-04-01 09:54:17.497145, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 09:54:17.622948, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 60%|██████    | 24/40 [51:35<34:39, 129.99s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 25], device='cuda:0')\n",
      "tensor([23, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:56:21.969966, [-WARN]: Epoch 24, loss: 0.6080\n",
      "Time:2025-04-01 09:56:22.037993, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 09:56:22.144065, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 62%|██████▎   | 25/40 [53:40<32:05, 128.35s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([7, 0], device='cuda:0')\n",
      "tensor([7, 0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 09:58:27.854943, [-WARN]: Epoch 25, loss: 0.5950\n",
      "Time:2025-04-01 09:58:27.885007, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 09:58:28.000580, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 65%|██████▌   | 26/40 [55:46<29:46, 127.60s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([21, 17], device='cuda:0')\n",
      "tensor([21,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:00:34.812243, [-WARN]: Epoch 26, loss: 0.5908\n",
      "Time:2025-04-01 10:00:34.839979, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 10:00:34.948454, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 68%|██████▊   | 27/40 [57:53<27:36, 127.40s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([15,  1], device='cuda:0')\n",
      "tensor([15,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:02:41.354027, [-WARN]: Epoch 27, loss: 0.5846\n",
      "Time:2025-04-01 10:02:41.384155, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 10:02:41.508066, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 70%|███████   | 28/40 [59:59<25:25, 127.15s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 25], device='cuda:0')\n",
      "tensor([25, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:04:50.708416, [-WARN]: Epoch 28, loss: 0.5750\n",
      "Time:2025-04-01 10:04:50.736987, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 10:04:50.860177, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 72%|███████▎  | 29/40 [1:02:09<23:25, 127.81s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([13, 19], device='cuda:0')\n",
      "tensor([13, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:07:04.132959, [-WARN]: Epoch 29, loss: 0.5583\n",
      "Time:2025-04-01 10:07:04.161003, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 10:07:04.273346, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 75%|███████▌  | 30/40 [1:04:22<21:34, 129.49s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 16], device='cuda:0')\n",
      "tensor([ 1, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:09:13.462744, [-WARN]: Epoch 30, loss: 0.5517\n",
      "Time:2025-04-01 10:09:13.497613, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 10:09:13.627418, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 78%|███████▊  | 31/40 [1:06:31<19:25, 129.45s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17, 25], device='cuda:0')\n",
      "tensor([17, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:11:23.048390, [-WARN]: Epoch 31, loss: 0.5416\n",
      "Time:2025-04-01 10:11:23.077808, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 10:11:23.196099, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 80%|████████  | 32/40 [1:08:41<17:15, 129.49s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 3, 19], device='cuda:0')\n",
      "tensor([ 2, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:13:31.868369, [-WARN]: Epoch 32, loss: 0.5326\n",
      "Time:2025-04-01 10:13:31.901156, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 10:13:32.014340, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 82%|████████▎ | 33/40 [1:10:50<15:04, 129.29s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 19], device='cuda:0')\n",
      "tensor([ 8, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:15:39.513283, [-WARN]: Epoch 33, loss: 0.5237\n",
      "Time:2025-04-01 10:15:39.543217, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 10:15:39.654996, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 85%|████████▌ | 34/40 [1:12:57<12:52, 128.79s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18, 23], device='cuda:0')\n",
      "tensor([22, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:17:48.471548, [-WARN]: Epoch 34, loss: 0.5108\n",
      "Time:2025-04-01 10:17:48.488546, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 10:17:48.578972, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 88%|████████▊ | 35/40 [1:15:06<10:44, 128.83s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([20, 16], device='cuda:0')\n",
      "tensor([18, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:19:58.451028, [-WARN]: Epoch 35, loss: 0.5027\n",
      "Time:2025-04-01 10:19:58.479430, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 10:19:58.603923, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 90%|█████████ | 36/40 [1:17:16<08:36, 129.19s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([20, 10], device='cuda:0')\n",
      "tensor([20, 10], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:22:07.087594, [-WARN]: Epoch 36, loss: 0.4946\n",
      "Time:2025-04-01 10:22:07.118942, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 10:22:07.243183, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 92%|█████████▎| 37/40 [1:19:25<06:27, 129.02s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([13, 15], device='cuda:0')\n",
      "tensor([13, 15], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:24:13.234483, [-WARN]: Epoch 37, loss: 0.4832\n",
      "Time:2025-04-01 10:24:13.261451, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 10:24:13.377962, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 95%|█████████▌| 38/40 [1:21:31<04:16, 128.16s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 1], device='cuda:0')\n",
      "tensor([8, 1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:26:21.455251, [-WARN]: Epoch 38, loss: 0.4753\n",
      "Time:2025-04-01 10:26:21.490628, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 10:26:21.624401, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      " 98%|█████████▊| 39/40 [1:23:39<02:08, 128.18s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23,  4], device='cuda:0')\n",
      "tensor([23,  4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:28:29.329935, [-WARN]: Epoch 39, loss: 0.4589\n",
      "Time:2025-04-01 10:28:29.356970, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 10:28:29.478733, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/ well.\n",
      "100%|██████████| 40/40 [1:25:47<00:00, 128.70s/it]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22,  4], device='cuda:0')\n",
      "tensor([22,  4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:28:29.748808, [-WARN]: Load empty model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/gnn_model.pkl.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "####################################################################################################\n",
      "Now begin new experiment with the following model parameter!\n",
      "{'latent_feature_length': 100, 'nb_layer': 3}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=100，out_feats=100,num_heads=3\n",
      "Build GAT : in_feats=300，out_feats=200,num_heads=2\n",
      "Build GAT : in_feats=400，out_feats=400,num_heads=1\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "  0%|          | 0/40 [00:00<?, ?it/s]Time:2025-04-01 10:31:46.272721, [-WARN]: Epoch 0, loss: 1.9827\n",
      "Time:2025-04-01 10:31:46.314583, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 10:31:46.403034, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      "  2%|▎         | 1/40 [03:16<2:07:49, 196.65s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([24,  8], device='cuda:0')\n",
      "tensor([24,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:34:50.633555, [-WARN]: Epoch 1, loss: 1.3020\n",
      "Time:2025-04-01 10:34:50.674366, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 10:34:50.796410, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      "  5%|▌         | 2/40 [06:21<1:59:58, 189.44s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 8, 25], device='cuda:0')\n",
      "tensor([14, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:38:05.217317, [-WARN]: Epoch 2, loss: 1.1669\n",
      "Time:2025-04-01 10:38:05.259203, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 10:38:05.382133, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      "  8%|▊         | 3/40 [09:35<1:58:16, 191.79s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25,  0], device='cuda:0')\n",
      "tensor([14,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:41:14.571954, [-WARN]: Epoch 3, loss: 1.0835\n",
      "Time:2025-04-01 10:41:14.591167, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 10:41:14.678730, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 10%|█         | 4/40 [12:44<1:54:28, 190.81s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22, 25], device='cuda:0')\n",
      "tensor([18, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:44:26.856787, [-WARN]: Epoch 4, loss: 1.0239\n",
      "Time:2025-04-01 10:44:26.897466, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 10:44:27.019650, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 12%|█▎        | 5/40 [15:57<1:51:37, 191.36s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10, 20], device='cuda:0')\n",
      "tensor([10, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:47:35.869107, [-WARN]: Epoch 5, loss: 0.9392\n",
      "Time:2025-04-01 10:47:35.909889, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 10:47:36.038145, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 15%|█▌        | 6/40 [19:06<1:47:59, 190.56s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 20], device='cuda:0')\n",
      "tensor([ 1, 24], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:50:51.535511, [-WARN]: Epoch 6, loss: 0.8881\n",
      "Time:2025-04-01 10:50:51.571271, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 10:50:51.692989, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 18%|█▊        | 7/40 [22:21<1:45:43, 192.23s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17,  8], device='cuda:0')\n",
      "tensor([17,  8], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:54:07.282184, [-WARN]: Epoch 7, loss: 0.8542\n",
      "Time:2025-04-01 10:54:07.317326, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 10:54:07.435650, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 20%|██        | 8/40 [25:37<1:43:07, 193.35s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([4, 8], device='cuda:0')\n",
      "tensor([4, 6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 10:57:22.490146, [-WARN]: Epoch 8, loss: 0.8445\n",
      "Time:2025-04-01 10:57:22.525317, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 10:57:22.644684, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 22%|██▎       | 9/40 [28:52<1:40:11, 193.93s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([24,  8], device='cuda:0')\n",
      "tensor([24, 14], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:00:36.320170, [-WARN]: Epoch 9, loss: 0.8197\n",
      "Time:2025-04-01 11:00:36.358896, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 11:00:36.492036, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 25%|██▌       | 10/40 [32:06<1:36:57, 193.90s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 16], device='cuda:0')\n",
      "tensor([25, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:03:49.303111, [-WARN]: Epoch 10, loss: 0.7976\n",
      "Time:2025-04-01 11:03:49.339229, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 11:03:49.461071, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 28%|██▊       | 11/40 [35:19<1:33:34, 193.62s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 8], device='cuda:0')\n",
      "tensor([12, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:07:02.786319, [-WARN]: Epoch 11, loss: 0.7889\n",
      "Time:2025-04-01 11:07:02.826527, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 11:07:02.951334, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 30%|███       | 12/40 [38:33<1:30:20, 193.58s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 12], device='cuda:0')\n",
      "tensor([25, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:10:08.674785, [-WARN]: Epoch 12, loss: 0.7669\n",
      "Time:2025-04-01 11:10:08.711213, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 11:10:08.831469, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 32%|███▎      | 13/40 [41:39<1:26:03, 191.25s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 12], device='cuda:0')\n",
      "tensor([ 1, 14], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:13:20.894825, [-WARN]: Epoch 13, loss: 0.7565\n",
      "Time:2025-04-01 11:13:20.939242, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 11:13:21.069431, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 35%|███▌      | 14/40 [44:51<1:23:00, 191.55s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([20,  7], device='cuda:0')\n",
      "tensor([18,  5], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:16:33.370999, [-WARN]: Epoch 14, loss: 0.7456\n",
      "Time:2025-04-01 11:16:33.412043, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 11:16:33.532253, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 38%|███▊      | 15/40 [48:03<1:19:55, 191.82s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([21, 23], device='cuda:0')\n",
      "tensor([21, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:19:45.296138, [-WARN]: Epoch 15, loss: 0.7362\n",
      "Time:2025-04-01 11:19:45.384142, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 11:19:45.482021, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 40%|████      | 16/40 [51:15<1:16:44, 191.86s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 0, 14], device='cuda:0')\n",
      "tensor([ 0, 10], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:22:59.073534, [-WARN]: Epoch 16, loss: 0.7268\n",
      "Time:2025-04-01 11:22:59.109634, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 11:22:59.223260, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 42%|████▎     | 17/40 [54:29<1:13:45, 192.43s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 16], device='cuda:0')\n",
      "tensor([ 1, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:26:11.750294, [-WARN]: Epoch 17, loss: 0.7059\n",
      "Time:2025-04-01 11:26:11.785813, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 11:26:11.911783, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 45%|████▌     | 18/40 [57:42<1:10:35, 192.51s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 8], device='cuda:0')\n",
      "tensor([ 1, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:29:26.458755, [-WARN]: Epoch 18, loss: 0.6943\n",
      "Time:2025-04-01 11:29:26.497399, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 11:29:26.624549, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 48%|████▊     | 19/40 [1:00:56<1:07:36, 193.17s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 1], device='cuda:0')\n",
      "tensor([8, 1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:32:41.720280, [-WARN]: Epoch 19, loss: 0.6864\n",
      "Time:2025-04-01 11:32:41.756674, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 11:32:41.876011, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 50%|█████     | 20/40 [1:04:12<1:04:35, 193.79s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 8], device='cuda:0')\n",
      "tensor([12, 12], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:35:53.554060, [-WARN]: Epoch 20, loss: 0.6764\n",
      "Time:2025-04-01 11:35:53.594427, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 11:35:53.716601, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 52%|█████▎    | 21/40 [1:07:23<1:01:10, 193.21s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([8, 0], device='cuda:0')\n",
      "tensor([10,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:39:05.619966, [-WARN]: Epoch 21, loss: 0.6619\n",
      "Time:2025-04-01 11:39:05.656032, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 11:39:05.773260, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 55%|█████▌    | 22/40 [1:10:36<57:51, 192.86s/it]  "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 17], device='cuda:0')\n",
      "tensor([25, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:42:13.367124, [-WARN]: Epoch 22, loss: 0.6536\n",
      "Time:2025-04-01 11:42:13.402519, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 11:42:13.522219, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 57%|█████▊    | 23/40 [1:13:43<54:12, 191.33s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([24, 19], device='cuda:0')\n",
      "tensor([20, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:45:21.383119, [-WARN]: Epoch 23, loss: 0.6418\n",
      "Time:2025-04-01 11:45:21.423709, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 11:45:21.547282, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 60%|██████    | 24/40 [1:16:51<50:45, 190.34s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22,  1], device='cuda:0')\n",
      "tensor([22,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:48:33.076015, [-WARN]: Epoch 24, loss: 0.6304\n",
      "Time:2025-04-01 11:48:33.112794, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 11:48:33.234292, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 62%|██████▎   | 25/40 [1:20:03<47:41, 190.74s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([20, 23], device='cuda:0')\n",
      "tensor([24, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:51:47.464654, [-WARN]: Epoch 25, loss: 0.6208\n",
      "Time:2025-04-01 11:51:47.499758, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 11:51:47.620355, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 65%|██████▌   | 26/40 [1:23:17<44:45, 191.84s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 22], device='cuda:0')\n",
      "tensor([ 4, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:55:00.369973, [-WARN]: Epoch 26, loss: 0.6146\n",
      "Time:2025-04-01 11:55:00.406204, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 11:55:00.529929, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 68%|██████▊   | 27/40 [1:26:30<41:38, 192.16s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19,  6], device='cuda:0')\n",
      "tensor([19,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 11:58:14.466345, [-WARN]: Epoch 27, loss: 0.6055\n",
      "Time:2025-04-01 11:58:14.513932, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 11:58:14.642095, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 70%|███████   | 28/40 [1:29:44<38:32, 192.74s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 21], device='cuda:0')\n",
      "tensor([21, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:01:26.693787, [-WARN]: Epoch 28, loss: 0.5962\n",
      "Time:2025-04-01 12:01:26.730051, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 12:01:26.849348, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 72%|███████▎  | 29/40 [1:32:57<35:18, 192.58s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 22], device='cuda:0')\n",
      "tensor([21, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:04:41.719902, [-WARN]: Epoch 29, loss: 0.5899\n",
      "Time:2025-04-01 12:04:41.759983, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 12:04:41.880130, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 75%|███████▌  | 30/40 [1:36:12<32:13, 193.32s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([1, 1], device='cuda:0')\n",
      "tensor([1, 1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:07:55.633889, [-WARN]: Epoch 30, loss: 0.5783\n",
      "Time:2025-04-01 12:07:55.669559, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 12:07:55.789015, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 78%|███████▊  | 31/40 [1:39:26<29:01, 193.49s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([12, 21], device='cuda:0')\n",
      "tensor([ 8, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:11:10.209774, [-WARN]: Epoch 31, loss: 0.5612\n",
      "Time:2025-04-01 12:11:10.245214, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 12:11:10.364734, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 80%|████████  | 32/40 [1:42:40<25:50, 193.82s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18,  1], device='cuda:0')\n",
      "tensor([22,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:14:24.872251, [-WARN]: Epoch 32, loss: 0.5519\n",
      "Time:2025-04-01 12:14:24.907589, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 12:14:25.026473, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 82%|████████▎ | 33/40 [1:45:55<22:38, 194.07s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([24, 17], device='cuda:0')\n",
      "tensor([20, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:17:31.747405, [-WARN]: Epoch 33, loss: 0.5521\n",
      "Time:2025-04-01 12:17:31.788211, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 12:17:31.912516, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 85%|████████▌ | 34/40 [1:49:02<19:11, 191.92s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17, 18], device='cuda:0')\n",
      "tensor([23, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:20:45.709527, [-WARN]: Epoch 34, loss: 0.5340\n",
      "Time:2025-04-01 12:20:45.733838, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 12:20:45.833431, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 88%|████████▊ | 35/40 [1:52:16<16:02, 192.52s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 24], device='cuda:0')\n",
      "tensor([23, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:23:55.778359, [-WARN]: Epoch 35, loss: 0.5302\n",
      "Time:2025-04-01 12:23:55.813328, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 12:23:55.936367, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 90%|█████████ | 36/40 [1:55:26<12:47, 191.79s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([17,  4], device='cuda:0')\n",
      "tensor([17,  4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:27:05.423962, [-WARN]: Epoch 36, loss: 0.5254\n",
      "Time:2025-04-01 12:27:05.464381, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 12:27:05.589148, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 92%|█████████▎| 37/40 [1:58:35<09:33, 191.15s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([15, 17], device='cuda:0')\n",
      "tensor([15, 19], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:30:19.087140, [-WARN]: Epoch 37, loss: 0.5189\n",
      "Time:2025-04-01 12:30:19.122060, [-INFO]: Accuracy of argmax predictions on the valid set: 0.000000%\n",
      "Time:2025-04-01 12:30:19.244007, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 95%|█████████▌| 38/40 [2:01:49<06:23, 191.90s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18, 25], device='cuda:0')\n",
      "tensor([16, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:33:25.489969, [-WARN]: Epoch 38, loss: 0.5064\n",
      "Time:2025-04-01 12:33:25.525240, [-INFO]: Accuracy of argmax predictions on the valid set: 50.000000%\n",
      "Time:2025-04-01 12:33:25.645376, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      " 98%|█████████▊| 39/40 [2:04:55<03:10, 190.25s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([25, 21], device='cuda:0')\n",
      "tensor([17, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:34.882447, [-WARN]: Epoch 39, loss: 0.5046\n",
      "Time:2025-04-01 12:36:34.915065, [-INFO]: Accuracy of argmax predictions on the valid set: 100.000000%\n",
      "Time:2025-04-01 12:36:35.027072, [-WARN]: Dump model to ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/ well.\n",
      "100%|██████████| 40/40 [2:08:05<00:00, 192.13s/it]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 18], device='cuda:0')\n",
      "tensor([ 1, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:35.354996, [-WARN]: Load model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E7/gnn_model.pkl well.\n",
      "Time:2025-04-01 12:36:35.379689, [-INFO]: Accuracy of argmax predictions on the test subset0: 62.500000%\n",
      "Time:2025-04-01 12:36:35.396088, [-INFO]: Accuracy of argmax predictions on the test subset1: 0.000000%\n",
      "Time:2025-04-01 12:36:35.425625, [-INFO]: Accuracy of argmax predictions on the test subset2: 50.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The Best Model is:\n",
      "{'latent_feature_length': 200, 'nb_layer': 2}\n",
      "The acc is:\n",
      "67.5\n",
      "####################################################################################################\n",
      "Now begin eval with the following model parameter!\n",
      "{'latent_feature_length': 200, 'nb_layer': 2}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=200，out_feats=200,num_heads=2\n",
      "Build GAT : in_feats=400，out_feats=400,num_heads=1\n",
      "tensor([23,  6, 20,  8,  6, 10, 20, 10], device='cuda:0')\n",
      "tensor([23,  8, 20,  8,  6, 12, 20,  6], device='cuda:0')\n",
      "tensor([10, 23, 23, 23, 10, 19, 23,  6], device='cuda:0')\n",
      "tensor([14, 13, 25, 19, 14, 17, 21, 12], device='cuda:0')\n",
      "tensor([ 3, 23, 23, 22, 20, 23,  4, 25], device='cuda:0')\n",
      "tensor([11, 17, 23, 22,  0, 23,  4, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:35.439759, [-INFO]: Accuracy of argmax predictions on the test subset3: 25.000000%\n",
      "Time:2025-04-01 12:36:35.451846, [-INFO]: Accuracy of argmax predictions on the test subset4: 75.000000%\n",
      "Time:2025-04-01 12:36:35.465871, [-INFO]: Accuracy of argmax predictions on the test subset5: 25.000000%\n",
      "Time:2025-04-01 12:36:35.493544, [-INFO]: Accuracy of argmax predictions on the test subset6: 25.000000%\n",
      "Time:2025-04-01 12:36:35.542015, [-INFO]: Accuracy of argmax predictions on the test subset7: 25.000000%\n",
      "Time:2025-04-01 12:36:35.556336, [-INFO]: Accuracy of argmax predictions on the test subset8: 75.000000%\n",
      "Time:2025-04-01 12:36:35.569926, [-INFO]: Accuracy of argmax predictions on the test subset9: 12.500000%\n",
      "Time:2025-04-01 12:36:35.582821, [-INFO]: Accuracy of argmax predictions on the test subset10: 50.000000%\n",
      "Time:2025-04-01 12:36:35.631771, [-INFO]: Accuracy of argmax predictions on the test subset11: 25.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10,  6, 10,  1, 10, 23, 23, 10], device='cuda:0')\n",
      "tensor([14,  8, 10,  1,  6, 18, 20,  9], device='cuda:0')\n",
      "tensor([ 3,  4, 20,  1,  4, 25, 19, 19], device='cuda:0')\n",
      "tensor([ 2,  4, 20,  1,  4, 25, 21, 19], device='cuda:0')\n",
      "tensor([23, 23, 10, 20, 10, 23, 22, 23], device='cuda:0')\n",
      "tensor([23,  0, 12, 20,  5, 18, 16, 17], device='cuda:0')\n",
      "tensor([20, 23,  6, 20, 11, 23, 23,  1], device='cuda:0')\n",
      "tensor([ 0, 23, 14, 24,  5, 19, 19,  1], device='cuda:0')\n",
      "tensor([ 8, 10, 23, 21,  6, 23, 23,  8], device='cuda:0')\n",
      "tensor([12, 14,  0, 24,  8, 23, 23, 20], device='cuda:0')\n",
      "tensor([ 1, 20, 23,  4, 10, 11, 10, 23], device='cuda:0')\n",
      "tensor([ 1, 20, 23,  4, 12, 11,  6, 23], device='cuda:0')\n",
      "tensor([ 8,  6, 20, 19, 23,  6, 10,  8], device='cuda:0')\n",
      "tensor([12,  6, 24, 23, 22,  8,  6, 12], device='cuda:0')\n",
      "tensor([15, 20, 22, 23, 21, 23, 23, 11], device='cuda:0')\n",
      "tensor([15, 20, 22, 23, 25, 17, 17,  9], device='cuda:0')\n",
      "tensor([ 4, 21, 21, 23, 23, 23, 19, 23], device='cuda:0')\n",
      "tensor([23, 21, 16, 21, 23, 21, 17,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:35.645866, [-INFO]: Accuracy of argmax predictions on the test subset12: 50.000000%\n",
      "Time:2025-04-01 12:36:35.661217, [-INFO]: Accuracy of argmax predictions on the test subset13: 37.500000%\n",
      "Time:2025-04-01 12:36:35.690148, [-INFO]: Accuracy of argmax predictions on the test subset14: 37.500000%\n",
      "Time:2025-04-01 12:36:35.702340, [-INFO]: Accuracy of argmax predictions on the test subset15: 25.000000%\n",
      "Time:2025-04-01 12:36:35.714797, [-INFO]: Accuracy of argmax predictions on the test subset16: 37.500000%\n",
      "Time:2025-04-01 12:36:35.734288, [-INFO]: Accuracy of argmax predictions on the test subset17: 75.000000%\n",
      "Time:2025-04-01 12:36:35.754379, [-INFO]: Accuracy of argmax predictions on the test subset18: 25.000000%\n",
      "Time:2025-04-01 12:36:35.771871, [-INFO]: Accuracy of argmax predictions on the test subset19: 25.000000%\n",
      "Time:2025-04-01 12:36:35.787510, [-INFO]: Accuracy of argmax predictions on the test subset20: 25.000000%\n",
      "Time:2025-04-01 12:36:35.801666, [-INFO]: Accuracy of argmax predictions on the test subset21: 37.500000%\n",
      "Time:2025-04-01 12:36:35.814707, [-INFO]: Accuracy of argmax predictions on the test subset22: 37.500000%\n",
      "Time:2025-04-01 12:36:35.843179, [-INFO]: Accuracy of argmax predictions on the test subset23: 37.500000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 10, 19,  6,  1,  4, 23,  4], device='cuda:0')\n",
      "tensor([ 1, 14, 17, 14,  1,  4, 19,  4], device='cuda:0')\n",
      "tensor([10, 10, 25,  6, 20, 10,  4, 22], device='cuda:0')\n",
      "tensor([20,  6, 21, 10,  0, 10,  4, 22], device='cuda:0')\n",
      "tensor([ 4,  8, 18,  8, 23, 23,  1, 24], device='cuda:0')\n",
      "tensor([ 4, 12, 22,  6, 23, 17,  1,  0], device='cuda:0')\n",
      "tensor([10, 23,  1,  6, 18, 11,  0,  8], device='cuda:0')\n",
      "tensor([14, 18,  1,  8, 16, 15,  0, 16], device='cuda:0')\n",
      "tensor([19,  8, 19,  1, 23, 20,  4,  8], device='cuda:0')\n",
      "tensor([17, 18, 23,  1, 13, 20,  4, 12], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  4,  6, 23, 10, 10], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  4, 12, 22, 10, 10], device='cuda:0')\n",
      "tensor([22, 21, 18, 23, 23, 21, 23,  1], device='cuda:0')\n",
      "tensor([ 4, 21,  5, 18, 16, 16, 17,  1], device='cuda:0')\n",
      "tensor([20, 23, 23,  8,  6, 23,  3,  8], device='cuda:0')\n",
      "tensor([20, 25, 17, 16,  6, 17, 15, 22], device='cuda:0')\n",
      "tensor([10, 23, 25,  6, 10,  4,  8,  6], device='cuda:0')\n",
      "tensor([10, 19, 21,  8,  0,  4, 12, 12], device='cuda:0')\n",
      "tensor([10, 23, 10, 10, 10, 25, 20, 10], device='cuda:0')\n",
      "tensor([10, 22,  6, 10,  7, 21, 20, 14], device='cuda:0')\n",
      "tensor([23,  6, 23,  8, 11, 19,  6, 25], device='cuda:0')\n",
      "tensor([13, 11, 25,  8, 11, 17, 10, 25], device='cuda:0')\n",
      "tensor([20, 23,  3, 23,  3, 20, 10,  6], device='cuda:0')\n",
      "tensor([ 0, 16,  3, 23,  2, 20,  6, 14], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:35.858809, [-INFO]: Accuracy of argmax predictions on the test subset24: 25.000000%\n",
      "Time:2025-04-01 12:36:35.903814, [-INFO]: Accuracy of argmax predictions on the test subset25: 12.500000%\n",
      "Time:2025-04-01 12:36:35.917960, [-INFO]: Accuracy of argmax predictions on the test subset26: 25.000000%\n",
      "Time:2025-04-01 12:36:35.933776, [-INFO]: Accuracy of argmax predictions on the test subset27: 37.500000%\n",
      "Time:2025-04-01 12:36:35.945116, [-INFO]: Accuracy of argmax predictions on the test subset28: 25.000000%\n",
      "Time:2025-04-01 12:36:35.957398, [-INFO]: Accuracy of argmax predictions on the test subset29: 37.500000%\n",
      "Time:2025-04-01 12:36:35.971354, [-INFO]: Accuracy of argmax predictions on the test subset30: 50.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10,  1, 19, 11, 10, 19, 10, 19], device='cuda:0')\n",
      "tensor([11,  1, 17,  7, 15, 19,  0, 25], device='cuda:0')\n",
      "tensor([10, 15,  6, 25,  8, 23, 19, 21], device='cuda:0')\n",
      "tensor([ 0, 15, 12, 10, 10, 21, 17, 16], device='cuda:0')\n",
      "tensor([21, 23, 22, 23,  1, 10, 23, 21], device='cuda:0')\n",
      "tensor([21, 25, 16, 16,  1, 14, 13, 24], device='cuda:0')\n",
      "tensor([11, 23, 23, 19, 20, 10,  1, 23], device='cuda:0')\n",
      "tensor([ 5, 23, 18, 19,  0, 18,  1, 25], device='cuda:0')\n",
      "tensor([23, 10, 18,  1, 21,  8,  6,  8], device='cuda:0')\n",
      "tensor([19, 14, 16,  1, 24,  8, 10, 18], device='cuda:0')\n",
      "tensor([24,  8, 23, 10, 23,  8, 21, 10], device='cuda:0')\n",
      "tensor([ 1,  8, 17, 10, 18, 24, 21, 12], device='cuda:0')\n",
      "tensor([10, 23, 23, 15,  6, 23, 25, 23], device='cuda:0')\n",
      "tensor([ 8, 23, 13, 15, 10, 23, 21, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:36.154256, [-INFO]: Accuracy of argmax predictions on the test subset31: 25.000000%\n",
      "Time:2025-04-01 12:36:36.214764, [-INFO]: Accuracy of argmax predictions on the test subset32: 50.000000%\n",
      "Time:2025-04-01 12:36:36.227523, [-INFO]: Accuracy of argmax predictions on the test subset33: 50.000000%\n",
      "Time:2025-04-01 12:36:36.240563, [-INFO]: Accuracy of argmax predictions on the test subset34: 37.500000%\n",
      "Time:2025-04-01 12:36:36.253302, [-INFO]: Accuracy of argmax predictions on the test subset35: 25.000000%\n",
      "Time:2025-04-01 12:36:36.269010, [-INFO]: Accuracy of argmax predictions on the test subset36: 12.500000%\n",
      "Time:2025-04-01 12:36:36.281782, [-INFO]: Accuracy of argmax predictions on the test subset37: 25.000000%\n",
      "Time:2025-04-01 12:36:36.294901, [-INFO]: Accuracy of argmax predictions on the test subset38: 75.000000%\n",
      "Time:2025-04-01 12:36:36.306818, [-INFO]: Accuracy of argmax predictions on the test subset39: 50.000000%\n",
      "Time:2025-04-01 12:36:36.318847, [-INFO]: Accuracy of argmax predictions on the test subset40: 62.500000%\n",
      "Time:2025-04-01 12:36:36.336135, [-INFO]: Accuracy of argmax predictions on the test subset41: 37.500000%\n",
      "Time:2025-04-01 12:36:36.347923, [-INFO]: Accuracy of argmax predictions on the test subset42: 50.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 23, 21,  6,  7, 10, 23,  6], device='cuda:0')\n",
      "tensor([ 1, 13, 16,  6,  0,  0, 25, 14], device='cuda:0')\n",
      "tensor([10,  3,  8, 10,  3,  6, 23, 20], device='cuda:0')\n",
      "tensor([ 6,  3,  8, 14,  3,  8,  0, 20], device='cuda:0')\n",
      "tensor([ 1, 19, 10,  1, 10, 10,  4, 25], device='cuda:0')\n",
      "tensor([ 1, 17,  7,  1, 10,  6,  4, 21], device='cuda:0')\n",
      "tensor([ 8,  1, 23, 10, 19,  3, 19,  1], device='cuda:0')\n",
      "tensor([12,  1, 13,  6, 17,  3, 17,  1], device='cuda:0')\n",
      "tensor([ 8, 23, 25, 10, 19,  6,  1, 25], device='cuda:0')\n",
      "tensor([ 0, 25, 25, 14, 17, 14,  1, 21], device='cuda:0')\n",
      "tensor([20, 10,  8, 10, 22, 10, 23, 23], device='cuda:0')\n",
      "tensor([ 0, 14, 12, 14, 22, 14, 19, 25], device='cuda:0')\n",
      "tensor([15, 16, 19,  6,  6, 22,  3, 23], device='cuda:0')\n",
      "tensor([15, 18, 17, 12, 14, 22,  2, 19], device='cuda:0')\n",
      "tensor([15, 10,  0,  6, 25,  1,  1, 23], device='cuda:0')\n",
      "tensor([15,  6,  0, 12, 25,  1,  1, 23], device='cuda:0')\n",
      "tensor([ 8,  4,  4, 25, 23,  6,  6, 19], device='cuda:0')\n",
      "tensor([22,  4,  4, 21, 19, 10,  6, 19], device='cuda:0')\n",
      "tensor([23,  4, 19,  4,  8, 20, 23, 23], device='cuda:0')\n",
      "tensor([23,  4, 17,  4,  8, 20, 17, 21], device='cuda:0')\n",
      "tensor([21, 23, 22, 22, 15,  8, 10, 24], device='cuda:0')\n",
      "tensor([16, 13, 22, 22, 15, 14,  6,  0], device='cuda:0')\n",
      "tensor([ 6,  6,  8, 23,  8, 23,  8, 23], device='cuda:0')\n",
      "tensor([ 6, 10,  8, 24,  8, 16,  8, 13], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:36.396134, [-INFO]: Accuracy of argmax predictions on the test subset43: 37.500000%\n",
      "Time:2025-04-01 12:36:36.441601, [-INFO]: Accuracy of argmax predictions on the test subset44: 37.500000%\n",
      "Time:2025-04-01 12:36:36.469564, [-INFO]: Accuracy of argmax predictions on the test subset45: 12.500000%\n",
      "Time:2025-04-01 12:36:36.500706, [-INFO]: Accuracy of argmax predictions on the test subset46: 25.000000%\n",
      "Time:2025-04-01 12:36:36.502325, [-INFO]: Average Accuracy on test set:36.7021%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4,  4, 21, 10, 19, 10, 23, 23], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  0, 19, 18, 25, 18], device='cuda:0')\n",
      "tensor([10,  6, 25, 10, 23, 25,  6, 10], device='cuda:0')\n",
      "tensor([ 0,  8, 25, 10, 22, 25, 12,  9], device='cuda:0')\n",
      "tensor([10,  6, 20,  8,  3, 23, 19, 20], device='cuda:0')\n",
      "tensor([23, 10, 24,  1,  2, 21, 19,  0], device='cuda:0')\n",
      "tensor([ 1, 10,  6,  6, 23, 23, 10, 23], device='cuda:0')\n",
      "tensor([ 1, 12, 10,  8, 18, 25,  0, 23], device='cuda:0')\n",
      "####################################################################################################\n",
      "Now begin eval with the following model parameter!\n",
      "{'latent_feature_length': 100, 'nb_layer': 4}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=100，out_feats=100,num_heads=5\n",
      "Build GAT : in_feats=500，out_feats=200,num_heads=3\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:36.677769, [-WARN]: Load model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E10/gnn_model.pkl well.\n",
      "Time:2025-04-01 12:36:36.699153, [-INFO]: Accuracy of argmax predictions on the test subset0: 37.500000%\n",
      "Time:2025-04-01 12:36:36.717100, [-INFO]: Accuracy of argmax predictions on the test subset1: 0.000000%\n",
      "Time:2025-04-01 12:36:36.739480, [-INFO]: Accuracy of argmax predictions on the test subset2: 37.500000%\n",
      "Time:2025-04-01 12:36:36.754248, [-INFO]: Accuracy of argmax predictions on the test subset3: 25.000000%\n",
      "Time:2025-04-01 12:36:36.770052, [-INFO]: Accuracy of argmax predictions on the test subset4: 75.000000%\n",
      "Time:2025-04-01 12:36:36.786201, [-INFO]: Accuracy of argmax predictions on the test subset5: 37.500000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Build GAT : in_feats=600，out_feats=400,num_heads=2\n",
      "Build GAT : in_feats=800，out_feats=600,num_heads=1\n",
      "tensor([17, 10, 20,  8, 10, 10, 20, 10], device='cuda:0')\n",
      "tensor([23,  8, 20,  8,  6, 12, 20,  6], device='cuda:0')\n",
      "tensor([10, 18, 23, 17, 10, 19, 23, 10], device='cuda:0')\n",
      "tensor([14, 13, 25, 19, 14, 17, 21, 12], device='cuda:0')\n",
      "tensor([ 5, 10, 23, 22, 20, 17,  4, 20], device='cuda:0')\n",
      "tensor([11, 17, 23, 22,  0, 23,  4, 21], device='cuda:0')\n",
      "tensor([10, 10, 10,  1, 10, 22, 16, 11], device='cuda:0')\n",
      "tensor([14,  8, 10,  1,  6, 18, 20,  9], device='cuda:0')\n",
      "tensor([ 2,  4, 20,  1,  4, 21, 25, 19], device='cuda:0')\n",
      "tensor([ 2,  4, 20,  1,  4, 25, 21, 19], device='cuda:0')\n",
      "tensor([23, 18, 10, 20, 24, 16, 22, 17], device='cuda:0')\n",
      "tensor([23,  0, 12, 20,  5, 18, 16, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:36.808103, [-INFO]: Accuracy of argmax predictions on the test subset6: 37.500000%\n",
      "Time:2025-04-01 12:36:36.857482, [-INFO]: Accuracy of argmax predictions on the test subset7: 12.500000%\n",
      "Time:2025-04-01 12:36:36.874038, [-INFO]: Accuracy of argmax predictions on the test subset8: 50.000000%\n",
      "Time:2025-04-01 12:36:36.890291, [-INFO]: Accuracy of argmax predictions on the test subset9: 0.000000%\n",
      "Time:2025-04-01 12:36:36.905165, [-INFO]: Accuracy of argmax predictions on the test subset10: 50.000000%\n",
      "Time:2025-04-01 12:36:36.956047, [-INFO]: Accuracy of argmax predictions on the test subset11: 25.000000%\n",
      "Time:2025-04-01 12:36:36.971219, [-INFO]: Accuracy of argmax predictions on the test subset12: 62.500000%\n",
      "Time:2025-04-01 12:36:36.998509, [-INFO]: Accuracy of argmax predictions on the test subset13: 50.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([20, 23, 10, 20,  7, 19, 17,  1], device='cuda:0')\n",
      "tensor([ 0, 23, 14, 24,  5, 19, 19,  1], device='cuda:0')\n",
      "tensor([10, 10, 18, 20, 10, 23, 17, 22], device='cuda:0')\n",
      "tensor([12, 14,  0, 24,  8, 23, 23, 20], device='cuda:0')\n",
      "tensor([ 1, 20, 17,  4, 10, 11, 10, 10], device='cuda:0')\n",
      "tensor([ 1, 20, 23,  4, 12, 11,  6, 23], device='cuda:0')\n",
      "tensor([10, 10, 20, 19, 16, 10, 10, 10], device='cuda:0')\n",
      "tensor([12,  6, 24, 23, 22,  8,  6, 12], device='cuda:0')\n",
      "tensor([15, 20, 20, 23, 20, 17, 10, 11], device='cuda:0')\n",
      "tensor([15, 20, 22, 23, 25, 17, 17,  9], device='cuda:0')\n",
      "tensor([10, 21, 20, 23, 23, 23, 23, 18], device='cuda:0')\n",
      "tensor([23, 21, 16, 21, 23, 21, 17,  0], device='cuda:0')\n",
      "tensor([ 1, 10, 23, 10,  1,  4, 19,  4], device='cuda:0')\n",
      "tensor([ 1, 14, 17, 14,  1,  4, 19,  4], device='cuda:0')\n",
      "tensor([20, 10, 20, 10, 20, 10,  4, 20], device='cuda:0')\n",
      "tensor([20,  6, 21, 10,  0, 10,  4, 22], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:37.024545, [-INFO]: Accuracy of argmax predictions on the test subset14: 37.500000%\n",
      "Time:2025-04-01 12:36:37.042806, [-INFO]: Accuracy of argmax predictions on the test subset15: 37.500000%\n",
      "Time:2025-04-01 12:36:37.062779, [-INFO]: Accuracy of argmax predictions on the test subset16: 37.500000%\n",
      "Time:2025-04-01 12:36:37.082017, [-INFO]: Accuracy of argmax predictions on the test subset17: 87.500000%\n",
      "Time:2025-04-01 12:36:37.111228, [-INFO]: Accuracy of argmax predictions on the test subset18: 37.500000%\n",
      "Time:2025-04-01 12:36:37.138274, [-INFO]: Accuracy of argmax predictions on the test subset19: 25.000000%\n",
      "Time:2025-04-01 12:36:37.161560, [-INFO]: Accuracy of argmax predictions on the test subset20: 25.000000%\n",
      "Time:2025-04-01 12:36:37.183887, [-INFO]: Accuracy of argmax predictions on the test subset21: 37.500000%\n",
      "Time:2025-04-01 12:36:37.203478, [-INFO]: Accuracy of argmax predictions on the test subset22: 37.500000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 10, 20,  8, 23, 23,  1, 20], device='cuda:0')\n",
      "tensor([ 4, 12, 22,  6, 23, 17,  1,  0], device='cuda:0')\n",
      "tensor([10, 22,  1, 10, 20, 20,  0, 16], device='cuda:0')\n",
      "tensor([14, 18,  1,  8, 16, 15,  0, 16], device='cuda:0')\n",
      "tensor([19, 16, 19,  1, 18, 20,  4, 10], device='cuda:0')\n",
      "tensor([17, 18, 23,  1, 13, 20,  4, 12], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  4, 10, 22, 10, 10], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  4, 12, 22, 10, 10], device='cuda:0')\n",
      "tensor([22, 20, 20, 18, 22, 20, 17,  1], device='cuda:0')\n",
      "tensor([ 4, 21,  5, 18, 16, 16, 17,  1], device='cuda:0')\n",
      "tensor([20, 23, 23, 16, 10, 19,  9, 16], device='cuda:0')\n",
      "tensor([20, 25, 17, 16,  6, 17, 15, 22], device='cuda:0')\n",
      "tensor([10, 17, 20, 10, 18,  4,  8, 10], device='cuda:0')\n",
      "tensor([10, 19, 21,  8,  0,  4, 12, 12], device='cuda:0')\n",
      "tensor([10, 18, 10, 10, 11, 20, 20, 10], device='cuda:0')\n",
      "tensor([10, 22,  6, 10,  7, 21, 20, 14], device='cuda:0')\n",
      "tensor([18, 18, 23, 10, 11, 23, 10, 25], device='cuda:0')\n",
      "tensor([13, 11, 25,  8, 11, 17, 10, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:37.229273, [-INFO]: Accuracy of argmax predictions on the test subset23: 37.500000%\n",
      "Time:2025-04-01 12:36:37.246957, [-INFO]: Accuracy of argmax predictions on the test subset24: 25.000000%\n",
      "Time:2025-04-01 12:36:37.294577, [-INFO]: Accuracy of argmax predictions on the test subset25: 25.000000%\n",
      "Time:2025-04-01 12:36:37.310043, [-INFO]: Accuracy of argmax predictions on the test subset26: 25.000000%\n",
      "Time:2025-04-01 12:36:37.327574, [-INFO]: Accuracy of argmax predictions on the test subset27: 12.500000%\n",
      "Time:2025-04-01 12:36:37.342358, [-INFO]: Accuracy of argmax predictions on the test subset28: 37.500000%\n",
      "Time:2025-04-01 12:36:37.357955, [-INFO]: Accuracy of argmax predictions on the test subset29: 37.500000%\n",
      "Time:2025-04-01 12:36:37.374353, [-INFO]: Accuracy of argmax predictions on the test subset30: 62.500000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([20, 22,  2, 23,  2, 20, 10, 10], device='cuda:0')\n",
      "tensor([ 0, 16,  3, 23,  2, 20,  6, 14], device='cuda:0')\n",
      "tensor([ 7,  1, 23, 20, 20, 23,  5, 25], device='cuda:0')\n",
      "tensor([11,  1, 17,  7, 15, 19,  0, 25], device='cuda:0')\n",
      "tensor([18, 15, 10,  6, 10, 23, 19, 20], device='cuda:0')\n",
      "tensor([ 0, 15, 12, 10, 10, 21, 17, 16], device='cuda:0')\n",
      "tensor([20, 23, 22, 16,  1, 10, 18, 20], device='cuda:0')\n",
      "tensor([21, 25, 16, 16,  1, 14, 13, 24], device='cuda:0')\n",
      "tensor([20, 17, 22, 23, 20, 20,  1, 23], device='cuda:0')\n",
      "tensor([ 5, 23, 18, 19,  0, 18,  1, 25], device='cuda:0')\n",
      "tensor([10, 10, 16,  1, 20, 10, 10, 16], device='cuda:0')\n",
      "tensor([19, 14, 16,  1, 24,  8, 10, 18], device='cuda:0')\n",
      "tensor([20, 10, 17, 10, 22, 16, 21, 10], device='cuda:0')\n",
      "tensor([ 1,  8, 17, 10, 18, 24, 21, 12], device='cuda:0')\n",
      "tensor([10, 23, 18, 15, 10, 23, 25, 23], device='cuda:0')\n",
      "tensor([ 8, 23, 13, 15, 10, 23, 21, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:37.466609, [-INFO]: Accuracy of argmax predictions on the test subset31: 12.500000%\n",
      "Time:2025-04-01 12:36:37.522211, [-INFO]: Accuracy of argmax predictions on the test subset32: 12.500000%\n",
      "Time:2025-04-01 12:36:37.537640, [-INFO]: Accuracy of argmax predictions on the test subset33: 50.000000%\n",
      "Time:2025-04-01 12:36:37.552745, [-INFO]: Accuracy of argmax predictions on the test subset34: 25.000000%\n",
      "Time:2025-04-01 12:36:37.568741, [-INFO]: Accuracy of argmax predictions on the test subset35: 12.500000%\n",
      "Time:2025-04-01 12:36:37.586139, [-INFO]: Accuracy of argmax predictions on the test subset36: 0.000000%\n",
      "Time:2025-04-01 12:36:37.600550, [-INFO]: Accuracy of argmax predictions on the test subset37: 25.000000%\n",
      "Time:2025-04-01 12:36:37.615763, [-INFO]: Accuracy of argmax predictions on the test subset38: 75.000000%\n",
      "Time:2025-04-01 12:36:37.633047, [-INFO]: Accuracy of argmax predictions on the test subset39: 62.500000%\n",
      "Time:2025-04-01 12:36:37.648474, [-INFO]: Accuracy of argmax predictions on the test subset40: 62.500000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 1, 18, 20, 10, 18, 18, 23, 10], device='cuda:0')\n",
      "tensor([ 1, 13, 16,  6,  0,  0, 25, 14], device='cuda:0')\n",
      "tensor([10,  2, 10, 10,  2, 10, 18, 20], device='cuda:0')\n",
      "tensor([ 6,  3,  8, 14,  3,  8,  0, 20], device='cuda:0')\n",
      "tensor([ 1, 23, 11,  1, 10, 10,  4, 25], device='cuda:0')\n",
      "tensor([ 1, 17,  7,  1, 10,  6,  4, 21], device='cuda:0')\n",
      "tensor([10,  1, 18, 10, 23,  2, 23,  1], device='cuda:0')\n",
      "tensor([12,  1, 13,  6, 17,  3, 17,  1], device='cuda:0')\n",
      "tensor([ 5, 23, 20, 10, 19, 10,  1, 25], device='cuda:0')\n",
      "tensor([ 0, 25, 25, 14, 17, 14,  1, 21], device='cuda:0')\n",
      "tensor([20, 10, 10, 10, 20, 10, 17, 23], device='cuda:0')\n",
      "tensor([ 0, 14, 12, 14, 22, 14, 19, 25], device='cuda:0')\n",
      "tensor([15, 16, 23, 10, 10, 20,  2, 23], device='cuda:0')\n",
      "tensor([15, 18, 17, 12, 14, 22,  2, 19], device='cuda:0')\n",
      "tensor([15, 10,  0, 10, 25,  1,  1, 23], device='cuda:0')\n",
      "tensor([15,  6,  0, 12, 25,  1,  1, 23], device='cuda:0')\n",
      "tensor([20,  4,  4, 21, 17, 10, 10, 19], device='cuda:0')\n",
      "tensor([22,  4,  4, 21, 19, 10,  6, 19], device='cuda:0')\n",
      "tensor([23,  4, 23,  4,  8, 20, 23, 23], device='cuda:0')\n",
      "tensor([23,  4, 17,  4,  8, 20, 17, 21], device='cuda:0')\n",
      "tensor([20, 18, 22, 22, 15, 10, 10, 20], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:37.668404, [-INFO]: Accuracy of argmax predictions on the test subset41: 37.500000%\n",
      "Time:2025-04-01 12:36:37.683007, [-INFO]: Accuracy of argmax predictions on the test subset42: 12.500000%\n",
      "Time:2025-04-01 12:36:37.732615, [-INFO]: Accuracy of argmax predictions on the test subset43: 25.000000%\n",
      "Time:2025-04-01 12:36:37.781798, [-INFO]: Accuracy of argmax predictions on the test subset44: 37.500000%\n",
      "Time:2025-04-01 12:36:37.805198, [-INFO]: Accuracy of argmax predictions on the test subset45: 37.500000%\n",
      "Time:2025-04-01 12:36:37.825524, [-INFO]: Accuracy of argmax predictions on the test subset46: 37.500000%\n",
      "Time:2025-04-01 12:36:37.826826, [-INFO]: Average Accuracy on test set:35.1064%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16, 13, 22, 22, 15, 14,  6,  0], device='cuda:0')\n",
      "tensor([10, 10, 10, 16, 10, 22, 10, 18], device='cuda:0')\n",
      "tensor([ 6, 10,  8, 24,  8, 16,  8, 13], device='cuda:0')\n",
      "tensor([ 4,  4, 20, 18, 23, 20, 23, 16], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  0, 19, 18, 25, 18], device='cuda:0')\n",
      "tensor([18, 10, 25, 10, 16, 25, 10,  7], device='cuda:0')\n",
      "tensor([ 0,  8, 25, 10, 22, 25, 12,  9], device='cuda:0')\n",
      "tensor([10, 10, 20, 22,  2, 23, 19, 20], device='cuda:0')\n",
      "tensor([23, 10, 24,  1,  2, 21, 19,  0], device='cuda:0')\n",
      "tensor([ 1, 10, 10, 10, 22, 23,  5, 23], device='cuda:0')\n",
      "tensor([ 1, 12, 10,  8, 18, 25,  0, 23], device='cuda:0')\n",
      "####################################################################################################\n",
      "Now begin eval with the following model parameter!\n",
      "{'latent_feature_length': 60, 'nb_layer': 2}\n",
      "Train GAT model.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:37.932172, [-WARN]: Load model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E2/gnn_model.pkl well.\n",
      "Time:2025-04-01 12:36:37.951171, [-INFO]: Accuracy of argmax predictions on the test subset0: 0.000000%\n",
      "Time:2025-04-01 12:36:37.964025, [-INFO]: Accuracy of argmax predictions on the test subset1: 12.500000%\n",
      "Time:2025-04-01 12:36:37.985087, [-INFO]: Accuracy of argmax predictions on the test subset2: 25.000000%\n",
      "Time:2025-04-01 12:36:37.996849, [-INFO]: Accuracy of argmax predictions on the test subset3: 25.000000%\n",
      "Time:2025-04-01 12:36:38.009287, [-INFO]: Accuracy of argmax predictions on the test subset4: 37.500000%\n",
      "Time:2025-04-01 12:36:38.022176, [-INFO]: Accuracy of argmax predictions on the test subset5: 25.000000%\n",
      "Time:2025-04-01 12:36:38.040006, [-INFO]: Accuracy of argmax predictions on the test subset6: 37.500000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Build GAT : in_feats=60，out_feats=60,num_heads=2\n",
      "Build GAT : in_feats=120，out_feats=120,num_heads=1\n",
      "tensor([19, 10, 16, 10, 10, 10, 16, 10], device='cuda:0')\n",
      "tensor([23,  8, 20,  8,  6, 12, 20,  6], device='cuda:0')\n",
      "tensor([10, 18, 23, 19, 10, 19, 23, 10], device='cuda:0')\n",
      "tensor([14, 13, 25, 19, 14, 17, 21, 12], device='cuda:0')\n",
      "tensor([ 2, 19, 23, 16, 18, 19,  4, 19], device='cuda:0')\n",
      "tensor([11, 17, 23, 22,  0, 23,  4, 21], device='cuda:0')\n",
      "tensor([10, 10, 10, 18, 10, 18, 18, 18], device='cuda:0')\n",
      "tensor([14,  8, 10,  1,  6, 18, 20,  9], device='cuda:0')\n",
      "tensor([ 4,  4, 16, 18,  4,  2, 19, 19], device='cuda:0')\n",
      "tensor([ 2,  4, 20,  1,  4, 25, 21, 19], device='cuda:0')\n",
      "tensor([23, 18, 10, 16, 11, 18, 18, 19], device='cuda:0')\n",
      "tensor([23,  0, 12, 20,  5, 18, 16, 17], device='cuda:0')\n",
      "tensor([18, 23, 10, 18, 20, 19, 19, 18], device='cuda:0')\n",
      "tensor([ 0, 23, 14, 24,  5, 19, 19,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:38.086063, [-INFO]: Accuracy of argmax predictions on the test subset7: 12.500000%\n",
      "Time:2025-04-01 12:36:38.099289, [-INFO]: Accuracy of argmax predictions on the test subset8: 25.000000%\n",
      "Time:2025-04-01 12:36:38.110957, [-INFO]: Accuracy of argmax predictions on the test subset9: 0.000000%\n",
      "Time:2025-04-01 12:36:38.131205, [-INFO]: Accuracy of argmax predictions on the test subset10: 12.500000%\n",
      "Time:2025-04-01 12:36:38.179590, [-INFO]: Accuracy of argmax predictions on the test subset11: 12.500000%\n",
      "Time:2025-04-01 12:36:38.192291, [-INFO]: Accuracy of argmax predictions on the test subset12: 37.500000%\n",
      "Time:2025-04-01 12:36:38.210622, [-INFO]: Accuracy of argmax predictions on the test subset13: 50.000000%\n",
      "Time:2025-04-01 12:36:38.227005, [-INFO]: Accuracy of argmax predictions on the test subset14: 25.000000%\n",
      "Time:2025-04-01 12:36:38.238464, [-INFO]: Accuracy of argmax predictions on the test subset15: 25.000000%\n",
      "Time:2025-04-01 12:36:38.251474, [-INFO]: Accuracy of argmax predictions on the test subset16: 12.500000%\n",
      "Time:2025-04-01 12:36:38.263660, [-INFO]: Accuracy of argmax predictions on the test subset17: 62.500000%\n",
      "Time:2025-04-01 12:36:38.275404, [-INFO]: Accuracy of argmax predictions on the test subset18: 12.500000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10, 10, 18, 20, 10, 23, 19, 18], device='cuda:0')\n",
      "tensor([12, 14,  0, 24,  8, 23, 23, 20], device='cuda:0')\n",
      "tensor([18, 20, 19,  4, 10, 18, 10, 19], device='cuda:0')\n",
      "tensor([ 1, 20, 23,  4, 12, 11,  6, 23], device='cuda:0')\n",
      "tensor([10, 10, 18, 19, 16, 10, 10, 10], device='cuda:0')\n",
      "tensor([12,  6, 24, 23, 22,  8,  6, 12], device='cuda:0')\n",
      "tensor([18, 16, 18, 23, 19, 19, 19, 11], device='cuda:0')\n",
      "tensor([15, 20, 22, 23, 25, 17, 17,  9], device='cuda:0')\n",
      "tensor([19, 23, 20, 23, 23, 23, 19, 18], device='cuda:0')\n",
      "tensor([23, 21, 16, 21, 23, 21, 17,  0], device='cuda:0')\n",
      "tensor([18, 10, 19, 10, 18,  4, 19,  4], device='cuda:0')\n",
      "tensor([ 1, 14, 17, 14,  1,  4, 19,  4], device='cuda:0')\n",
      "tensor([20, 10, 19, 10, 18, 10,  4, 18], device='cuda:0')\n",
      "tensor([20,  6, 21, 10,  0, 10,  4, 22], device='cuda:0')\n",
      "tensor([ 4, 10, 18, 10, 23, 19, 18, 18], device='cuda:0')\n",
      "tensor([ 4, 12, 22,  6, 23, 17,  1,  0], device='cuda:0')\n",
      "tensor([10, 16, 18, 10, 16,  2,  0, 18], device='cuda:0')\n",
      "tensor([14, 18,  1,  8, 16, 15,  0, 16], device='cuda:0')\n",
      "tensor([19, 16, 19, 18, 16, 18,  4, 10], device='cuda:0')\n",
      "tensor([17, 18, 23,  1, 13, 20,  4, 12], device='cuda:0')\n",
      "tensor([ 4,  4, 21,  4, 10, 18, 10, 10], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  4, 12, 22, 10, 10], device='cuda:0')\n",
      "tensor([18, 19, 20, 18, 18, 20, 19, 18], device='cuda:0')\n",
      "tensor([ 4, 21,  5, 18, 16, 16, 17,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:38.298204, [-INFO]: Accuracy of argmax predictions on the test subset19: 0.000000%\n",
      "Time:2025-04-01 12:36:38.318849, [-INFO]: Accuracy of argmax predictions on the test subset20: 37.500000%\n",
      "Time:2025-04-01 12:36:38.342133, [-INFO]: Accuracy of argmax predictions on the test subset21: 25.000000%\n",
      "Time:2025-04-01 12:36:38.359510, [-INFO]: Accuracy of argmax predictions on the test subset22: 37.500000%\n",
      "Time:2025-04-01 12:36:38.378311, [-INFO]: Accuracy of argmax predictions on the test subset23: 25.000000%\n",
      "Time:2025-04-01 12:36:38.401523, [-INFO]: Accuracy of argmax predictions on the test subset24: 25.000000%\n",
      "Time:2025-04-01 12:36:38.446512, [-INFO]: Accuracy of argmax predictions on the test subset25: 25.000000%\n",
      "Time:2025-04-01 12:36:38.461679, [-INFO]: Accuracy of argmax predictions on the test subset26: 25.000000%\n",
      "Time:2025-04-01 12:36:38.477399, [-INFO]: Accuracy of argmax predictions on the test subset27: 25.000000%\n",
      "Time:2025-04-01 12:36:38.491315, [-INFO]: Accuracy of argmax predictions on the test subset28: 37.500000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16, 23, 19, 18, 10, 19,  2, 16], device='cuda:0')\n",
      "tensor([20, 25, 17, 16,  6, 17, 15, 22], device='cuda:0')\n",
      "tensor([10, 19, 19, 10, 18,  4, 10, 10], device='cuda:0')\n",
      "tensor([10, 19, 21,  8,  0,  4, 12, 12], device='cuda:0')\n",
      "tensor([10, 18, 10, 10, 11, 19, 16, 10], device='cuda:0')\n",
      "tensor([10, 22,  6, 10,  7, 21, 20, 14], device='cuda:0')\n",
      "tensor([18, 11, 23, 10, 11, 19, 10, 21], device='cuda:0')\n",
      "tensor([13, 11, 25,  8, 11, 17, 10, 25], device='cuda:0')\n",
      "tensor([18, 16,  4, 23,  4, 16, 10, 10], device='cuda:0')\n",
      "tensor([ 0, 16,  3, 23,  2, 20,  6, 14], device='cuda:0')\n",
      "tensor([18, 18, 19, 11, 20, 19,  0, 19], device='cuda:0')\n",
      "tensor([11,  1, 17,  7, 15, 19,  0, 25], device='cuda:0')\n",
      "tensor([11, 18, 10, 10, 10, 23, 19, 20], device='cuda:0')\n",
      "tensor([ 0, 15, 12, 10, 10, 21, 17, 16], device='cuda:0')\n",
      "tensor([19, 23, 16, 16, 18, 10, 16, 20], device='cuda:0')\n",
      "tensor([21, 25, 16, 16,  1, 14, 13, 24], device='cuda:0')\n",
      "tensor([11, 19, 18, 19, 18, 20, 18, 23], device='cuda:0')\n",
      "tensor([ 5, 23, 18, 19,  0, 18,  1, 25], device='cuda:0')\n",
      "tensor([19, 10, 18, 18, 20, 10, 10, 18], device='cuda:0')\n",
      "tensor([19, 14, 16,  1, 24,  8, 10, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:38.506920, [-INFO]: Accuracy of argmax predictions on the test subset29: 25.000000%\n",
      "Time:2025-04-01 12:36:38.521563, [-INFO]: Accuracy of argmax predictions on the test subset30: 62.500000%\n",
      "Time:2025-04-01 12:36:38.606719, [-INFO]: Accuracy of argmax predictions on the test subset31: 0.000000%\n",
      "Time:2025-04-01 12:36:38.661493, [-INFO]: Accuracy of argmax predictions on the test subset32: 0.000000%\n",
      "Time:2025-04-01 12:36:38.676404, [-INFO]: Accuracy of argmax predictions on the test subset33: 37.500000%\n",
      "Time:2025-04-01 12:36:38.690868, [-INFO]: Accuracy of argmax predictions on the test subset34: 0.000000%\n",
      "Time:2025-04-01 12:36:38.703843, [-INFO]: Accuracy of argmax predictions on the test subset35: 25.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18, 10, 19, 10, 18, 16,  2, 10], device='cuda:0')\n",
      "tensor([ 1,  8, 17, 10, 18, 24, 21, 12], device='cuda:0')\n",
      "tensor([10, 23, 16, 18, 10, 23, 21, 23], device='cuda:0')\n",
      "tensor([ 8, 23, 13, 15, 10, 23, 21, 23], device='cuda:0')\n",
      "tensor([18, 18, 20, 10, 11, 11, 23, 10], device='cuda:0')\n",
      "tensor([ 1, 13, 16,  6,  0,  0, 25, 14], device='cuda:0')\n",
      "tensor([10,  4, 10, 10,  4, 10, 18, 16], device='cuda:0')\n",
      "tensor([ 6,  3,  8, 14,  3,  8,  0, 20], device='cuda:0')\n",
      "tensor([18, 19, 11, 18, 10, 10,  4, 21], device='cuda:0')\n",
      "tensor([ 1, 17,  7,  1, 10,  6,  4, 21], device='cuda:0')\n",
      "tensor([10, 18, 16, 10, 19,  4, 19, 18], device='cuda:0')\n",
      "tensor([12,  1, 13,  6, 17,  3, 17,  1], device='cuda:0')\n",
      "tensor([ 0, 23, 19, 10, 19, 10, 18, 21], device='cuda:0')\n",
      "tensor([ 0, 25, 25, 14, 17, 14,  1, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:38.719798, [-INFO]: Accuracy of argmax predictions on the test subset36: 12.500000%\n",
      "Time:2025-04-01 12:36:38.737452, [-INFO]: Accuracy of argmax predictions on the test subset37: 25.000000%\n",
      "Time:2025-04-01 12:36:38.751850, [-INFO]: Accuracy of argmax predictions on the test subset38: 25.000000%\n",
      "Time:2025-04-01 12:36:38.771525, [-INFO]: Accuracy of argmax predictions on the test subset39: 75.000000%\n",
      "Time:2025-04-01 12:36:38.793420, [-INFO]: Accuracy of argmax predictions on the test subset40: 37.500000%\n",
      "Time:2025-04-01 12:36:38.822144, [-INFO]: Accuracy of argmax predictions on the test subset41: 12.500000%\n",
      "Time:2025-04-01 12:36:38.843472, [-INFO]: Accuracy of argmax predictions on the test subset42: 12.500000%\n",
      "Time:2025-04-01 12:36:38.892434, [-INFO]: Accuracy of argmax predictions on the test subset43: 50.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18, 10, 10, 10, 18, 10, 19, 23], device='cuda:0')\n",
      "tensor([ 0, 14, 12, 14, 22, 14, 19, 25], device='cuda:0')\n",
      "tensor([18, 18, 19, 10, 10, 18,  4, 19], device='cuda:0')\n",
      "tensor([15, 18, 17, 12, 14, 22,  2, 19], device='cuda:0')\n",
      "tensor([18, 10,  0, 10, 21, 18, 18, 23], device='cuda:0')\n",
      "tensor([15,  6,  0, 12, 25,  1,  1, 23], device='cuda:0')\n",
      "tensor([18,  4,  4, 21, 19, 10, 10, 19], device='cuda:0')\n",
      "tensor([22,  4,  4, 21, 19, 10,  6, 19], device='cuda:0')\n",
      "tensor([23,  4, 19,  4, 10, 16, 19, 23], device='cuda:0')\n",
      "tensor([23,  4, 17,  4,  8, 20, 17, 21], device='cuda:0')\n",
      "tensor([20, 18, 16, 18, 18, 10, 10,  0], device='cuda:0')\n",
      "tensor([16, 13, 22, 22, 15, 14,  6,  0], device='cuda:0')\n",
      "tensor([10, 10, 10, 18, 10, 18, 10, 18], device='cuda:0')\n",
      "tensor([ 6, 10,  8, 24,  8, 16,  8, 13], device='cuda:0')\n",
      "tensor([ 4,  4, 19, 11, 19, 18, 23, 16], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  0, 19, 18, 25, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:38.938165, [-INFO]: Accuracy of argmax predictions on the test subset44: 12.500000%\n",
      "Time:2025-04-01 12:36:38.953847, [-INFO]: Accuracy of argmax predictions on the test subset45: 25.000000%\n",
      "Time:2025-04-01 12:36:38.968018, [-INFO]: Accuracy of argmax predictions on the test subset46: 37.500000%\n",
      "Time:2025-04-01 12:36:38.969523, [-INFO]: Average Accuracy on test set:25.2660%\n",
      "Time:2025-04-01 12:36:39.078905, [-WARN]: Load model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E3/gnn_model.pkl well.\n",
      "Time:2025-04-01 12:36:39.096153, [-INFO]: Accuracy of argmax predictions on the test subset0: 0.000000%\n",
      "Time:2025-04-01 12:36:39.108646, [-INFO]: Accuracy of argmax predictions on the test subset1: 25.000000%\n",
      "Time:2025-04-01 12:36:39.125570, [-INFO]: Accuracy of argmax predictions on the test subset2: 37.500000%\n",
      "Time:2025-04-01 12:36:39.136568, [-INFO]: Accuracy of argmax predictions on the test subset3: 12.500000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([11, 10,  2, 10, 16, 21, 10, 18], device='cuda:0')\n",
      "tensor([ 0,  8, 25, 10, 22, 25, 12,  9], device='cuda:0')\n",
      "tensor([10, 10, 18, 12,  4, 23, 19, 18], device='cuda:0')\n",
      "tensor([23, 10, 24,  1,  2, 21, 19,  0], device='cuda:0')\n",
      "tensor([18, 10, 10, 10, 16, 23,  0, 23], device='cuda:0')\n",
      "tensor([ 1, 12, 10,  8, 18, 25,  0, 23], device='cuda:0')\n",
      "####################################################################################################\n",
      "Now begin eval with the following model parameter!\n",
      "{'latent_feature_length': 80, 'nb_layer': 2}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=80，out_feats=80,num_heads=2\n",
      "Build GAT : in_feats=160，out_feats=160,num_heads=1\n",
      "tensor([17, 12, 18, 12, 12, 10, 18, 12], device='cuda:0')\n",
      "tensor([23,  8, 20,  8,  6, 12, 20,  6], device='cuda:0')\n",
      "tensor([12, 18, 23, 19, 12, 19, 23, 12], device='cuda:0')\n",
      "tensor([14, 13, 25, 19, 14, 17, 21, 12], device='cuda:0')\n",
      "tensor([20, 19, 23, 18,  0, 17,  4, 20], device='cuda:0')\n",
      "tensor([11, 17, 23, 22,  0, 23,  4, 21], device='cuda:0')\n",
      "tensor([10, 12, 12,  1, 12, 16, 16, 18], device='cuda:0')\n",
      "tensor([14,  8, 10,  1,  6, 18, 20,  9], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:39.149762, [-INFO]: Accuracy of argmax predictions on the test subset4: 62.500000%\n",
      "Time:2025-04-01 12:36:39.162252, [-INFO]: Accuracy of argmax predictions on the test subset5: 25.000000%\n",
      "Time:2025-04-01 12:36:39.177870, [-INFO]: Accuracy of argmax predictions on the test subset6: 50.000000%\n",
      "Time:2025-04-01 12:36:39.221463, [-INFO]: Accuracy of argmax predictions on the test subset7: 25.000000%\n",
      "Time:2025-04-01 12:36:39.232735, [-INFO]: Accuracy of argmax predictions on the test subset8: 37.500000%\n",
      "Time:2025-04-01 12:36:39.243320, [-INFO]: Accuracy of argmax predictions on the test subset9: 25.000000%\n",
      "Time:2025-04-01 12:36:39.254590, [-INFO]: Accuracy of argmax predictions on the test subset10: 50.000000%\n",
      "Time:2025-04-01 12:36:39.300291, [-INFO]: Accuracy of argmax predictions on the test subset11: 25.000000%\n",
      "Time:2025-04-01 12:36:39.311068, [-INFO]: Accuracy of argmax predictions on the test subset12: 75.000000%\n",
      "Time:2025-04-01 12:36:39.324055, [-INFO]: Accuracy of argmax predictions on the test subset13: 62.500000%\n",
      "Time:2025-04-01 12:36:39.338801, [-INFO]: Accuracy of argmax predictions on the test subset14: 50.000000%\n",
      "Time:2025-04-01 12:36:39.349238, [-INFO]: Accuracy of argmax predictions on the test subset15: 37.500000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 3,  4, 20,  1,  4, 12, 21, 17], device='cuda:0')\n",
      "tensor([ 2,  4, 20,  1,  4, 25, 21, 19], device='cuda:0')\n",
      "tensor([23, 18, 10, 18, 18, 18, 18, 19], device='cuda:0')\n",
      "tensor([23,  0, 12, 20,  5, 18, 16, 17], device='cuda:0')\n",
      "tensor([ 0, 23, 12, 20, 20, 19, 17,  1], device='cuda:0')\n",
      "tensor([ 0, 23, 14, 24,  5, 19, 19,  1], device='cuda:0')\n",
      "tensor([12, 10, 18, 20, 12, 23, 17, 16], device='cuda:0')\n",
      "tensor([12, 14,  0, 24,  8, 23, 23, 20], device='cuda:0')\n",
      "tensor([ 1, 20, 17,  4, 10, 18, 12, 10], device='cuda:0')\n",
      "tensor([ 1, 20, 23,  4, 12, 11,  6, 23], device='cuda:0')\n",
      "tensor([12, 12, 22, 19, 18, 12, 12, 12], device='cuda:0')\n",
      "tensor([12,  6, 24, 23, 22,  8,  6, 12], device='cuda:0')\n",
      "tensor([15, 18, 22, 23, 21, 17, 19, 18], device='cuda:0')\n",
      "tensor([15, 20, 22, 23, 25, 17, 17,  9], device='cuda:0')\n",
      "tensor([19, 25, 20, 23, 23, 23, 17, 18], device='cuda:0')\n",
      "tensor([23, 21, 16, 21, 23, 21, 17,  0], device='cuda:0')\n",
      "tensor([ 1, 10, 17, 12,  1,  4, 19,  4], device='cuda:0')\n",
      "tensor([ 1, 14, 17, 14,  1,  4, 19,  4], device='cuda:0')\n",
      "tensor([20, 12, 20, 10,  0, 12,  4, 22], device='cuda:0')\n",
      "tensor([20,  6, 21, 10,  0, 10,  4, 22], device='cuda:0')\n",
      "tensor([ 4, 12, 18, 12, 23, 23, 20,  0], device='cuda:0')\n",
      "tensor([ 4, 12, 22,  6, 23, 17,  1,  0], device='cuda:0')\n",
      "tensor([12, 18,  1, 10, 18, 16,  0, 18], device='cuda:0')\n",
      "tensor([14, 18,  1,  8, 16, 15,  0, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:39.362223, [-INFO]: Accuracy of argmax predictions on the test subset16: 62.500000%\n",
      "Time:2025-04-01 12:36:39.373958, [-INFO]: Accuracy of argmax predictions on the test subset17: 62.500000%\n",
      "Time:2025-04-01 12:36:39.385459, [-INFO]: Accuracy of argmax predictions on the test subset18: 12.500000%\n",
      "Time:2025-04-01 12:36:39.397347, [-INFO]: Accuracy of argmax predictions on the test subset19: 37.500000%\n",
      "Time:2025-04-01 12:36:39.409408, [-INFO]: Accuracy of argmax predictions on the test subset20: 37.500000%\n",
      "Time:2025-04-01 12:36:39.421838, [-INFO]: Accuracy of argmax predictions on the test subset21: 0.000000%\n",
      "Time:2025-04-01 12:36:39.434632, [-INFO]: Accuracy of argmax predictions on the test subset22: 12.500000%\n",
      "Time:2025-04-01 12:36:39.450567, [-INFO]: Accuracy of argmax predictions on the test subset23: 37.500000%\n",
      "Time:2025-04-01 12:36:39.463423, [-INFO]: Accuracy of argmax predictions on the test subset24: 50.000000%\n",
      "Time:2025-04-01 12:36:39.509657, [-INFO]: Accuracy of argmax predictions on the test subset25: 25.000000%\n",
      "Time:2025-04-01 12:36:39.523016, [-INFO]: Accuracy of argmax predictions on the test subset26: 12.500000%\n",
      "Time:2025-04-01 12:36:39.537829, [-INFO]: Accuracy of argmax predictions on the test subset27: 25.000000%\n",
      "Time:2025-04-01 12:36:39.550962, [-INFO]: Accuracy of argmax predictions on the test subset28: 25.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([19, 18, 19,  1, 18, 20,  4, 12], device='cuda:0')\n",
      "tensor([17, 18, 23,  1, 13, 20,  4, 12], device='cuda:0')\n",
      "tensor([ 4,  4, 21,  4, 12, 16, 10, 12], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  4, 12, 22, 10, 10], device='cuda:0')\n",
      "tensor([16, 20, 20, 22, 18, 20, 23,  1], device='cuda:0')\n",
      "tensor([ 4, 21,  5, 18, 16, 16, 17,  1], device='cuda:0')\n",
      "tensor([20, 23, 17, 16, 12, 19, 20, 18], device='cuda:0')\n",
      "tensor([20, 25, 17, 16,  6, 17, 15, 22], device='cuda:0')\n",
      "tensor([12, 17, 20, 12, 18,  4, 12, 12], device='cuda:0')\n",
      "tensor([10, 19, 21,  8,  0,  4, 12, 12], device='cuda:0')\n",
      "tensor([12, 18, 12, 12, 18, 20, 18, 12], device='cuda:0')\n",
      "tensor([10, 22,  6, 10,  7, 21, 20, 14], device='cuda:0')\n",
      "tensor([18, 18, 23, 12, 18, 17, 12, 21], device='cuda:0')\n",
      "tensor([13, 11, 25,  8, 11, 17, 10, 25], device='cuda:0')\n",
      "tensor([ 0, 18,  3, 23,  3, 18, 12, 12], device='cuda:0')\n",
      "tensor([ 0, 16,  3, 23,  2, 20,  6, 14], device='cuda:0')\n",
      "tensor([20,  1, 17, 18,  1, 17,  0, 25], device='cuda:0')\n",
      "tensor([11,  1, 17,  7, 15, 19,  0, 25], device='cuda:0')\n",
      "tensor([18, 15, 12, 12, 12, 23, 19, 20], device='cuda:0')\n",
      "tensor([ 0, 15, 12, 10, 10, 21, 17, 16], device='cuda:0')\n",
      "tensor([20, 23, 18, 18,  1, 10, 18, 20], device='cuda:0')\n",
      "tensor([21, 25, 16, 16,  1, 14, 13, 24], device='cuda:0')\n",
      "tensor([18, 17, 16, 17,  0, 20,  1, 23], device='cuda:0')\n",
      "tensor([ 5, 23, 18, 19,  0, 18,  1, 25], device='cuda:0')\n",
      "tensor([10, 12, 16, 20, 20, 12, 12, 18], device='cuda:0')\n",
      "tensor([19, 14, 16,  1, 24,  8, 10, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:39.569918, [-INFO]: Accuracy of argmax predictions on the test subset29: 12.500000%\n",
      "Time:2025-04-01 12:36:39.592180, [-INFO]: Accuracy of argmax predictions on the test subset30: 62.500000%\n",
      "Time:2025-04-01 12:36:39.675664, [-INFO]: Accuracy of argmax predictions on the test subset31: 12.500000%\n",
      "Time:2025-04-01 12:36:39.722164, [-INFO]: Accuracy of argmax predictions on the test subset32: 37.500000%\n",
      "Time:2025-04-01 12:36:39.732932, [-INFO]: Accuracy of argmax predictions on the test subset33: 37.500000%\n",
      "Time:2025-04-01 12:36:39.744113, [-INFO]: Accuracy of argmax predictions on the test subset34: 75.000000%\n",
      "Time:2025-04-01 12:36:39.755223, [-INFO]: Accuracy of argmax predictions on the test subset35: 37.500000%\n",
      "Time:2025-04-01 12:36:39.767985, [-INFO]: Accuracy of argmax predictions on the test subset36: 50.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18, 12, 17, 12, 16, 18, 20, 10], device='cuda:0')\n",
      "tensor([ 1,  8, 17, 10, 18, 24, 21, 12], device='cuda:0')\n",
      "tensor([10, 23, 18, 15, 12, 23, 21, 23], device='cuda:0')\n",
      "tensor([ 8, 23, 13, 15, 10, 23, 21, 23], device='cuda:0')\n",
      "tensor([ 1, 18, 20, 12, 20, 18, 23, 12], device='cuda:0')\n",
      "tensor([ 1, 13, 16,  6,  0,  0, 25, 14], device='cuda:0')\n",
      "tensor([12,  3, 12, 12,  3, 12, 18, 20], device='cuda:0')\n",
      "tensor([ 6,  3,  8, 14,  3,  8,  0, 20], device='cuda:0')\n",
      "tensor([ 1, 17, 18, 20, 12, 12,  4, 20], device='cuda:0')\n",
      "tensor([ 1, 17,  7,  1, 10,  6,  4, 21], device='cuda:0')\n",
      "tensor([12,  1, 18, 12, 17,  3, 17,  1], device='cuda:0')\n",
      "tensor([12,  1, 13,  6, 17,  3, 17,  1], device='cuda:0')\n",
      "tensor([ 0, 23, 20, 12, 19, 12,  1, 21], device='cuda:0')\n",
      "tensor([ 0, 25, 25, 14, 17, 14,  1, 21], device='cuda:0')\n",
      "tensor([ 0, 12, 12, 12, 22, 12, 19, 23], device='cuda:0')\n",
      "tensor([ 0, 14, 12, 14, 22, 14, 19, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:39.779767, [-INFO]: Accuracy of argmax predictions on the test subset37: 50.000000%\n",
      "Time:2025-04-01 12:36:39.790778, [-INFO]: Accuracy of argmax predictions on the test subset38: 62.500000%\n",
      "Time:2025-04-01 12:36:39.802409, [-INFO]: Accuracy of argmax predictions on the test subset39: 50.000000%\n",
      "Time:2025-04-01 12:36:39.813756, [-INFO]: Accuracy of argmax predictions on the test subset40: 62.500000%\n",
      "Time:2025-04-01 12:36:39.827429, [-INFO]: Accuracy of argmax predictions on the test subset41: 25.000000%\n",
      "Time:2025-04-01 12:36:39.838029, [-INFO]: Accuracy of argmax predictions on the test subset42: 0.000000%\n",
      "Time:2025-04-01 12:36:39.882728, [-INFO]: Accuracy of argmax predictions on the test subset43: 50.000000%\n",
      "Time:2025-04-01 12:36:39.929100, [-INFO]: Accuracy of argmax predictions on the test subset44: 25.000000%\n",
      "Time:2025-04-01 12:36:39.945558, [-INFO]: Accuracy of argmax predictions on the test subset45: 25.000000%\n",
      "Time:2025-04-01 12:36:39.959590, [-INFO]: Accuracy of argmax predictions on the test subset46: 62.500000%\n",
      "Time:2025-04-01 12:36:39.960927, [-INFO]: Average Accuracy on test set:36.9681%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([15, 16, 17, 12, 12, 22,  3, 23], device='cuda:0')\n",
      "tensor([15, 18, 17, 12, 14, 22,  2, 19], device='cuda:0')\n",
      "tensor([15, 12,  0, 10, 21,  1,  1, 23], device='cuda:0')\n",
      "tensor([15,  6,  0, 12, 25,  1,  1, 23], device='cuda:0')\n",
      "tensor([18,  4,  4, 21, 17, 12, 12, 19], device='cuda:0')\n",
      "tensor([22,  4,  4, 21, 19, 10,  6, 19], device='cuda:0')\n",
      "tensor([23,  4, 17,  4, 12, 18, 17, 23], device='cuda:0')\n",
      "tensor([23,  4, 17,  4,  8, 20, 17, 21], device='cuda:0')\n",
      "tensor([20, 18, 16, 16, 15, 12, 10,  0], device='cuda:0')\n",
      "tensor([16, 13, 22, 22, 15, 14,  6,  0], device='cuda:0')\n",
      "tensor([12, 12, 12, 16, 12, 18, 12, 18], device='cuda:0')\n",
      "tensor([ 6, 10,  8, 24,  8, 16,  8, 13], device='cuda:0')\n",
      "tensor([ 4,  4, 21, 18, 17, 18, 23, 18], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  0, 19, 18, 25, 18], device='cuda:0')\n",
      "tensor([18, 12, 20, 10, 18, 21, 12, 18], device='cuda:0')\n",
      "tensor([ 0,  8, 25, 10, 22, 25, 12,  9], device='cuda:0')\n",
      "tensor([10, 12, 20, 18,  3, 23, 19,  0], device='cuda:0')\n",
      "tensor([23, 10, 24,  1,  2, 21, 19,  0], device='cuda:0')\n",
      "tensor([ 1, 12, 12, 12, 18, 23,  0, 23], device='cuda:0')\n",
      "tensor([ 1, 12, 10,  8, 18, 25,  0, 23], device='cuda:0')\n",
      "####################################################################################################\n",
      "Now begin eval with the following model parameter!\n",
      "{'latent_feature_length': 100, 'nb_layer': 2}\n",
      "Train GAT model.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:40.068281, [-WARN]: Load model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E4/gnn_model.pkl well.\n",
      "Time:2025-04-01 12:36:40.085025, [-INFO]: Accuracy of argmax predictions on the test subset0: 0.000000%\n",
      "Time:2025-04-01 12:36:40.097587, [-INFO]: Accuracy of argmax predictions on the test subset1: 0.000000%\n",
      "Time:2025-04-01 12:36:40.113746, [-INFO]: Accuracy of argmax predictions on the test subset2: 0.000000%\n",
      "Time:2025-04-01 12:36:40.124456, [-INFO]: Accuracy of argmax predictions on the test subset3: 0.000000%\n",
      "Time:2025-04-01 12:36:40.135965, [-INFO]: Accuracy of argmax predictions on the test subset4: 12.500000%\n",
      "Time:2025-04-01 12:36:40.148298, [-INFO]: Accuracy of argmax predictions on the test subset5: 12.500000%\n",
      "Time:2025-04-01 12:36:40.164211, [-INFO]: Accuracy of argmax predictions on the test subset6: 0.000000%\n",
      "Time:2025-04-01 12:36:40.208182, [-INFO]: Accuracy of argmax predictions on the test subset7: 0.000000%\n",
      "Time:2025-04-01 12:36:40.219062, [-INFO]: Accuracy of argmax predictions on the test subset8: 0.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Build GAT : in_feats=100，out_feats=100,num_heads=2\n",
      "Build GAT : in_feats=200，out_feats=200,num_heads=1\n",
      "tensor([16,  4, 16,  4,  4,  4, 16,  4], device='cuda:0')\n",
      "tensor([23,  8, 20,  8,  6, 12, 20,  6], device='cuda:0')\n",
      "tensor([ 4, 16, 16, 16,  4, 16, 16,  4], device='cuda:0')\n",
      "tensor([14, 13, 25, 19, 14, 17, 21, 12], device='cuda:0')\n",
      "tensor([16, 16, 16, 16, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([11, 17, 23, 22,  0, 23,  4, 21], device='cuda:0')\n",
      "tensor([ 4,  4,  4, 18,  4, 16, 16, 16], device='cuda:0')\n",
      "tensor([14,  8, 10,  1,  6, 18, 20,  9], device='cuda:0')\n",
      "tensor([16, 16, 16, 22,  4, 16, 16,  4], device='cuda:0')\n",
      "tensor([ 2,  4, 20,  1,  4, 25, 21, 19], device='cuda:0')\n",
      "tensor([16, 16,  4, 18, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([23,  0, 12, 20,  5, 18, 16, 17], device='cuda:0')\n",
      "tensor([16, 16,  4, 16, 16,  4, 16, 22], device='cuda:0')\n",
      "tensor([ 0, 23, 14, 24,  5, 19, 19,  1], device='cuda:0')\n",
      "tensor([ 4,  4, 16, 16,  4, 16, 16, 16], device='cuda:0')\n",
      "tensor([12, 14,  0, 24,  8, 23, 23, 20], device='cuda:0')\n",
      "tensor([22, 16, 16, 16,  4, 16,  4, 16], device='cuda:0')\n",
      "tensor([ 1, 20, 23,  4, 12, 11,  6, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:40.230755, [-INFO]: Accuracy of argmax predictions on the test subset9: 0.000000%\n",
      "Time:2025-04-01 12:36:40.241679, [-INFO]: Accuracy of argmax predictions on the test subset10: 0.000000%\n",
      "Time:2025-04-01 12:36:40.288002, [-INFO]: Accuracy of argmax predictions on the test subset11: 12.500000%\n",
      "Time:2025-04-01 12:36:40.298812, [-INFO]: Accuracy of argmax predictions on the test subset12: 12.500000%\n",
      "Time:2025-04-01 12:36:40.311786, [-INFO]: Accuracy of argmax predictions on the test subset13: 0.000000%\n",
      "Time:2025-04-01 12:36:40.326929, [-INFO]: Accuracy of argmax predictions on the test subset14: 0.000000%\n",
      "Time:2025-04-01 12:36:40.337155, [-INFO]: Accuracy of argmax predictions on the test subset15: 25.000000%\n",
      "Time:2025-04-01 12:36:40.348350, [-INFO]: Accuracy of argmax predictions on the test subset16: 0.000000%\n",
      "Time:2025-04-01 12:36:40.359849, [-INFO]: Accuracy of argmax predictions on the test subset17: 12.500000%\n",
      "Time:2025-04-01 12:36:40.370752, [-INFO]: Accuracy of argmax predictions on the test subset18: 25.000000%\n",
      "Time:2025-04-01 12:36:40.381865, [-INFO]: Accuracy of argmax predictions on the test subset19: 12.500000%\n",
      "Time:2025-04-01 12:36:40.393286, [-INFO]: Accuracy of argmax predictions on the test subset20: 0.000000%\n",
      "Time:2025-04-01 12:36:40.405254, [-INFO]: Accuracy of argmax predictions on the test subset21: 0.000000%\n",
      "Time:2025-04-01 12:36:40.417439, [-INFO]: Accuracy of argmax predictions on the test subset22: 0.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4,  4, 16,  4, 16,  4,  4,  4], device='cuda:0')\n",
      "tensor([12,  6, 24, 23, 22,  8,  6, 12], device='cuda:0')\n",
      "tensor([16, 18, 16, 16, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([15, 20, 22, 23, 25, 17, 17,  9], device='cuda:0')\n",
      "tensor([16, 16, 16, 16, 16, 16,  4, 16], device='cuda:0')\n",
      "tensor([23, 21, 16, 21, 23, 21, 17,  0], device='cuda:0')\n",
      "tensor([22,  4,  4,  4, 22, 16, 16,  4], device='cuda:0')\n",
      "tensor([ 1, 14, 17, 14,  1,  4, 19,  4], device='cuda:0')\n",
      "tensor([16,  4, 16,  4, 16,  4, 16, 16], device='cuda:0')\n",
      "tensor([20,  6, 21, 10,  0, 10,  4, 22], device='cuda:0')\n",
      "tensor([16,  4, 16,  4, 16, 16, 22, 16], device='cuda:0')\n",
      "tensor([ 4, 12, 22,  6, 23, 17,  1,  0], device='cuda:0')\n",
      "tensor([ 4, 16, 22,  4, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([14, 18,  1,  8, 16, 15,  0, 16], device='cuda:0')\n",
      "tensor([16, 16, 16, 22, 16, 16, 16,  4], device='cuda:0')\n",
      "tensor([17, 18, 23,  1, 13, 20,  4, 12], device='cuda:0')\n",
      "tensor([ 4, 16, 16, 16,  4, 16,  4,  4], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  4, 12, 22, 10, 10], device='cuda:0')\n",
      "tensor([18, 16, 16, 16, 16, 16, 16, 22], device='cuda:0')\n",
      "tensor([ 4, 21,  5, 18, 16, 16, 17,  1], device='cuda:0')\n",
      "tensor([18, 16,  4, 16,  4, 16, 16, 16], device='cuda:0')\n",
      "tensor([20, 25, 17, 16,  6, 17, 15, 22], device='cuda:0')\n",
      "tensor([ 4, 16, 16,  4, 16, 16,  4,  4], device='cuda:0')\n",
      "tensor([10, 19, 21,  8,  0,  4, 12, 12], device='cuda:0')\n",
      "tensor([ 4, 16,  4,  4, 16, 16, 16,  4], device='cuda:0')\n",
      "tensor([10, 22,  6, 10,  7, 21, 20, 14], device='cuda:0')\n",
      "tensor([16, 16, 16,  4, 16,  4,  4, 16], device='cuda:0')\n",
      "tensor([13, 11, 25,  8, 11, 17, 10, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:40.434988, [-INFO]: Accuracy of argmax predictions on the test subset23: 12.500000%\n",
      "Time:2025-04-01 12:36:40.447992, [-INFO]: Accuracy of argmax predictions on the test subset24: 0.000000%\n",
      "Time:2025-04-01 12:36:40.490451, [-INFO]: Accuracy of argmax predictions on the test subset25: 12.500000%\n",
      "Time:2025-04-01 12:36:40.501458, [-INFO]: Accuracy of argmax predictions on the test subset26: 12.500000%\n",
      "Time:2025-04-01 12:36:40.514304, [-INFO]: Accuracy of argmax predictions on the test subset27: 0.000000%\n",
      "Time:2025-04-01 12:36:40.524687, [-INFO]: Accuracy of argmax predictions on the test subset28: 12.500000%\n",
      "Time:2025-04-01 12:36:40.536206, [-INFO]: Accuracy of argmax predictions on the test subset29: 0.000000%\n",
      "Time:2025-04-01 12:36:40.548210, [-INFO]: Accuracy of argmax predictions on the test subset30: 0.000000%\n",
      "Time:2025-04-01 12:36:40.629998, [-INFO]: Accuracy of argmax predictions on the test subset31: 12.500000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16, 16, 16, 16, 16, 18,  4,  4], device='cuda:0')\n",
      "tensor([ 0, 16,  3, 23,  2, 20,  6, 14], device='cuda:0')\n",
      "tensor([16, 22,  4, 16, 16,  4, 16, 16], device='cuda:0')\n",
      "tensor([11,  1, 17,  7, 15, 19,  0, 25], device='cuda:0')\n",
      "tensor([16, 16,  4, 16,  4, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 0, 15, 12, 10, 10, 21, 17, 16], device='cuda:0')\n",
      "tensor([16, 16, 18, 16, 22,  4, 16, 16], device='cuda:0')\n",
      "tensor([21, 25, 16, 16,  1, 14, 13, 24], device='cuda:0')\n",
      "tensor([16, 16, 16,  4, 16, 16, 22, 16], device='cuda:0')\n",
      "tensor([ 5, 23, 18, 19,  0, 18,  1, 25], device='cuda:0')\n",
      "tensor([ 4,  4, 16, 16, 16,  4,  4, 16], device='cuda:0')\n",
      "tensor([19, 14, 16,  1, 24,  8, 10, 18], device='cuda:0')\n",
      "tensor([18,  4, 16,  4, 16, 16, 16,  4], device='cuda:0')\n",
      "tensor([ 1,  8, 17, 10, 18, 24, 21, 12], device='cuda:0')\n",
      "tensor([ 4, 16, 16, 16,  4, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 8, 23, 13, 15, 10, 23, 21, 23], device='cuda:0')\n",
      "tensor([22, 16, 16,  4, 16, 16, 16,  4], device='cuda:0')\n",
      "tensor([ 1, 13, 16,  6,  0,  0, 25, 14], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:40.678133, [-INFO]: Accuracy of argmax predictions on the test subset32: 0.000000%\n",
      "Time:2025-04-01 12:36:40.689049, [-INFO]: Accuracy of argmax predictions on the test subset33: 0.000000%\n",
      "Time:2025-04-01 12:36:40.700225, [-INFO]: Accuracy of argmax predictions on the test subset34: 0.000000%\n",
      "Time:2025-04-01 12:36:40.712154, [-INFO]: Accuracy of argmax predictions on the test subset35: 0.000000%\n",
      "Time:2025-04-01 12:36:40.726291, [-INFO]: Accuracy of argmax predictions on the test subset36: 0.000000%\n",
      "Time:2025-04-01 12:36:40.736913, [-INFO]: Accuracy of argmax predictions on the test subset37: 0.000000%\n",
      "Time:2025-04-01 12:36:40.748371, [-INFO]: Accuracy of argmax predictions on the test subset38: 0.000000%\n",
      "Time:2025-04-01 12:36:40.760139, [-INFO]: Accuracy of argmax predictions on the test subset39: 25.000000%\n",
      "Time:2025-04-01 12:36:40.772205, [-INFO]: Accuracy of argmax predictions on the test subset40: 12.500000%\n",
      "Time:2025-04-01 12:36:40.786572, [-INFO]: Accuracy of argmax predictions on the test subset41: 12.500000%\n",
      "Time:2025-04-01 12:36:40.797483, [-INFO]: Accuracy of argmax predictions on the test subset42: 12.500000%\n",
      "Time:2025-04-01 12:36:40.842298, [-INFO]: Accuracy of argmax predictions on the test subset43: 12.500000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4, 16,  4,  4, 16,  4, 16, 18], device='cuda:0')\n",
      "tensor([ 6,  3,  8, 14,  3,  8,  0, 20], device='cuda:0')\n",
      "tensor([18,  4, 16, 22,  4,  4, 16, 16], device='cuda:0')\n",
      "tensor([ 1, 17,  7,  1, 10,  6,  4, 21], device='cuda:0')\n",
      "tensor([ 4, 22, 16,  4,  4, 16,  4, 22], device='cuda:0')\n",
      "tensor([12,  1, 13,  6, 17,  3, 17,  1], device='cuda:0')\n",
      "tensor([16, 16, 16,  4, 16,  4, 22, 16], device='cuda:0')\n",
      "tensor([ 0, 25, 25, 14, 17, 14,  1, 21], device='cuda:0')\n",
      "tensor([16,  4,  4,  4, 16,  4, 16, 16], device='cuda:0')\n",
      "tensor([ 0, 14, 12, 14, 22, 14, 19, 25], device='cuda:0')\n",
      "tensor([16, 16,  4,  4,  4, 16, 16, 16], device='cuda:0')\n",
      "tensor([15, 18, 17, 12, 14, 22,  2, 19], device='cuda:0')\n",
      "tensor([16,  4, 16,  4, 16, 22, 22, 16], device='cuda:0')\n",
      "tensor([15,  6,  0, 12, 25,  1,  1, 23], device='cuda:0')\n",
      "tensor([16,  4,  4, 16, 16,  4,  4, 16], device='cuda:0')\n",
      "tensor([22,  4,  4, 21, 19, 10,  6, 19], device='cuda:0')\n",
      "tensor([16,  4,  4, 16,  4, 18,  4, 16], device='cuda:0')\n",
      "tensor([23,  4, 17,  4,  8, 20, 17, 21], device='cuda:0')\n",
      "tensor([16, 16, 18, 18, 16,  4,  4, 16], device='cuda:0')\n",
      "tensor([16, 13, 22, 22, 15, 14,  6,  0], device='cuda:0')\n",
      "tensor([ 4,  4,  4, 16,  4, 16,  4, 16], device='cuda:0')\n",
      "tensor([ 6, 10,  8, 24,  8, 16,  8, 13], device='cuda:0')\n",
      "tensor([16,  4, 16, 16,  4, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  0, 19, 18, 25, 18], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:40.889332, [-INFO]: Accuracy of argmax predictions on the test subset44: 0.000000%\n",
      "Time:2025-04-01 12:36:40.905666, [-INFO]: Accuracy of argmax predictions on the test subset45: 0.000000%\n",
      "Time:2025-04-01 12:36:40.920038, [-INFO]: Accuracy of argmax predictions on the test subset46: 0.000000%\n",
      "Time:2025-04-01 12:36:40.921330, [-INFO]: Average Accuracy on test set:5.5851%\n",
      "Time:2025-04-01 12:36:41.029743, [-WARN]: Load model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E5/gnn_model.pkl well.\n",
      "Time:2025-04-01 12:36:41.046374, [-INFO]: Accuracy of argmax predictions on the test subset0: 0.000000%\n",
      "Time:2025-04-01 12:36:41.058931, [-INFO]: Accuracy of argmax predictions on the test subset1: 0.000000%\n",
      "Time:2025-04-01 12:36:41.074666, [-INFO]: Accuracy of argmax predictions on the test subset2: 12.500000%\n",
      "Time:2025-04-01 12:36:41.085735, [-INFO]: Accuracy of argmax predictions on the test subset3: 0.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16,  4, 16,  4, 16, 16,  4, 16], device='cuda:0')\n",
      "tensor([ 0,  8, 25, 10, 22, 25, 12,  9], device='cuda:0')\n",
      "tensor([ 4,  4, 16, 18, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([23, 10, 24,  1,  2, 21, 19,  0], device='cuda:0')\n",
      "tensor([22,  4,  4,  4, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 1, 12, 10,  8, 18, 25,  0, 23], device='cuda:0')\n",
      "####################################################################################################\n",
      "Now begin eval with the following model parameter!\n",
      "{'latent_feature_length': 120, 'nb_layer': 2}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=120，out_feats=120,num_heads=2\n",
      "Build GAT : in_feats=240，out_feats=240,num_heads=1\n",
      "tensor([16, 16, 16,  4, 16, 16, 16,  4], device='cuda:0')\n",
      "tensor([23,  8, 20,  8,  6, 12, 20,  6], device='cuda:0')\n",
      "tensor([ 4, 16, 16, 16,  4, 16, 16, 16], device='cuda:0')\n",
      "tensor([14, 13, 25, 19, 14, 17, 21, 12], device='cuda:0')\n",
      "tensor([16, 16, 16, 16, 16, 16,  4, 16], device='cuda:0')\n",
      "tensor([11, 17, 23, 22,  0, 23,  4, 21], device='cuda:0')\n",
      "tensor([16, 16,  4, 16,  4, 16, 16, 16], device='cuda:0')\n",
      "tensor([14,  8, 10,  1,  6, 18, 20,  9], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:41.098948, [-INFO]: Accuracy of argmax predictions on the test subset4: 25.000000%\n",
      "Time:2025-04-01 12:36:41.119651, [-INFO]: Accuracy of argmax predictions on the test subset5: 12.500000%\n",
      "Time:2025-04-01 12:36:41.144277, [-INFO]: Accuracy of argmax predictions on the test subset6: 0.000000%\n",
      "Time:2025-04-01 12:36:41.190632, [-INFO]: Accuracy of argmax predictions on the test subset7: 0.000000%\n",
      "Time:2025-04-01 12:36:41.206779, [-INFO]: Accuracy of argmax predictions on the test subset8: 12.500000%\n",
      "Time:2025-04-01 12:36:41.221845, [-INFO]: Accuracy of argmax predictions on the test subset9: 0.000000%\n",
      "Time:2025-04-01 12:36:41.236561, [-INFO]: Accuracy of argmax predictions on the test subset10: 0.000000%\n",
      "Time:2025-04-01 12:36:41.284376, [-INFO]: Accuracy of argmax predictions on the test subset11: 12.500000%\n",
      "Time:2025-04-01 12:36:41.295467, [-INFO]: Accuracy of argmax predictions on the test subset12: 25.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4,  4, 16, 16,  4, 16, 16,  4], device='cuda:0')\n",
      "tensor([ 2,  4, 20,  1,  4, 25, 21, 19], device='cuda:0')\n",
      "tensor([16, 16, 16, 16, 16, 16, 16,  4], device='cuda:0')\n",
      "tensor([23,  0, 12, 20,  5, 18, 16, 17], device='cuda:0')\n",
      "tensor([16, 16, 16, 16, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 0, 23, 14, 24,  5, 19, 19,  1], device='cuda:0')\n",
      "tensor([ 4, 16, 16, 16, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([12, 14,  0, 24,  8, 23, 23, 20], device='cuda:0')\n",
      "tensor([16, 16, 16,  4, 16, 16,  4, 16], device='cuda:0')\n",
      "tensor([ 1, 20, 23,  4, 12, 11,  6, 23], device='cuda:0')\n",
      "tensor([ 4, 16, 16,  4, 16, 16,  4,  4], device='cuda:0')\n",
      "tensor([12,  6, 24, 23, 22,  8,  6, 12], device='cuda:0')\n",
      "tensor([18, 16, 18, 16, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([15, 20, 22, 23, 25, 17, 17,  9], device='cuda:0')\n",
      "tensor([ 4, 16, 16, 16, 16, 16,  4, 16], device='cuda:0')\n",
      "tensor([23, 21, 16, 21, 23, 21, 17,  0], device='cuda:0')\n",
      "tensor([16, 16,  4, 16, 16,  4, 16,  4], device='cuda:0')\n",
      "tensor([ 1, 14, 17, 14,  1,  4, 19,  4], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:41.311187, [-INFO]: Accuracy of argmax predictions on the test subset13: 12.500000%\n",
      "Time:2025-04-01 12:36:41.327534, [-INFO]: Accuracy of argmax predictions on the test subset14: 12.500000%\n",
      "Time:2025-04-01 12:36:41.337921, [-INFO]: Accuracy of argmax predictions on the test subset15: 25.000000%\n",
      "Time:2025-04-01 12:36:41.349653, [-INFO]: Accuracy of argmax predictions on the test subset16: 12.500000%\n",
      "Time:2025-04-01 12:36:41.361350, [-INFO]: Accuracy of argmax predictions on the test subset17: 37.500000%\n",
      "Time:2025-04-01 12:36:41.372821, [-INFO]: Accuracy of argmax predictions on the test subset18: 25.000000%\n",
      "Time:2025-04-01 12:36:41.384763, [-INFO]: Accuracy of argmax predictions on the test subset19: 12.500000%\n",
      "Time:2025-04-01 12:36:41.397663, [-INFO]: Accuracy of argmax predictions on the test subset20: 12.500000%\n",
      "Time:2025-04-01 12:36:41.409755, [-INFO]: Accuracy of argmax predictions on the test subset21: 0.000000%\n",
      "Time:2025-04-01 12:36:41.422489, [-INFO]: Accuracy of argmax predictions on the test subset22: 0.000000%\n",
      "Time:2025-04-01 12:36:41.441505, [-INFO]: Accuracy of argmax predictions on the test subset23: 12.500000%\n",
      "Time:2025-04-01 12:36:41.455001, [-INFO]: Accuracy of argmax predictions on the test subset24: 0.000000%\n",
      "Time:2025-04-01 12:36:41.497232, [-INFO]: Accuracy of argmax predictions on the test subset25: 12.500000%\n",
      "Time:2025-04-01 12:36:41.508315, [-INFO]: Accuracy of argmax predictions on the test subset26: 25.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16,  4, 16, 16, 16,  4,  4, 18], device='cuda:0')\n",
      "tensor([20,  6, 21, 10,  0, 10,  4, 22], device='cuda:0')\n",
      "tensor([ 4,  4, 16,  4, 16, 16, 16, 18], device='cuda:0')\n",
      "tensor([ 4, 12, 22,  6, 23, 17,  1,  0], device='cuda:0')\n",
      "tensor([ 4, 16, 16, 16, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([14, 18,  1,  8, 16, 15,  0, 16], device='cuda:0')\n",
      "tensor([16, 16, 16, 16, 16, 16,  4,  4], device='cuda:0')\n",
      "tensor([17, 18, 23,  1, 13, 20,  4, 12], device='cuda:0')\n",
      "tensor([ 4,  4, 16,  4, 16, 16, 16,  4], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  4, 12, 22, 10, 10], device='cuda:0')\n",
      "tensor([16, 16, 16, 16, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 4, 21,  5, 18, 16, 16, 17,  1], device='cuda:0')\n",
      "tensor([16, 16,  4, 16, 16,  4,  4, 16], device='cuda:0')\n",
      "tensor([20, 25, 17, 16,  6, 17, 15, 22], device='cuda:0')\n",
      "tensor([ 4, 16, 16, 16, 16,  4,  4, 16], device='cuda:0')\n",
      "tensor([10, 19, 21,  8,  0,  4, 12, 12], device='cuda:0')\n",
      "tensor([ 4, 16,  4,  4, 16, 16, 16,  4], device='cuda:0')\n",
      "tensor([10, 22,  6, 10,  7, 21, 20, 14], device='cuda:0')\n",
      "tensor([16, 16, 16,  4, 16,  4, 16, 16], device='cuda:0')\n",
      "tensor([13, 11, 25,  8, 11, 17, 10, 25], device='cuda:0')\n",
      "tensor([16, 16, 16, 16, 16, 16,  4, 16], device='cuda:0')\n",
      "tensor([ 0, 16,  3, 23,  2, 20,  6, 14], device='cuda:0')\n",
      "tensor([16, 16,  4, 16, 16,  4, 16, 16], device='cuda:0')\n",
      "tensor([11,  1, 17,  7, 15, 19,  0, 25], device='cuda:0')\n",
      "tensor([20, 18, 16, 16,  4, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 0, 15, 12, 10, 10, 21, 17, 16], device='cuda:0')\n",
      "tensor([16, 16, 16, 16, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([21, 25, 16, 16,  1, 14, 13, 24], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:41.521886, [-INFO]: Accuracy of argmax predictions on the test subset27: 0.000000%\n",
      "Time:2025-04-01 12:36:41.532454, [-INFO]: Accuracy of argmax predictions on the test subset28: 0.000000%\n",
      "Time:2025-04-01 12:36:41.543799, [-INFO]: Accuracy of argmax predictions on the test subset29: 0.000000%\n",
      "Time:2025-04-01 12:36:41.555879, [-INFO]: Accuracy of argmax predictions on the test subset30: 0.000000%\n",
      "Time:2025-04-01 12:36:41.636730, [-INFO]: Accuracy of argmax predictions on the test subset31: 12.500000%\n",
      "Time:2025-04-01 12:36:41.683943, [-INFO]: Accuracy of argmax predictions on the test subset32: 0.000000%\n",
      "Time:2025-04-01 12:36:41.697213, [-INFO]: Accuracy of argmax predictions on the test subset33: 12.500000%\n",
      "Time:2025-04-01 12:36:41.710207, [-INFO]: Accuracy of argmax predictions on the test subset34: 0.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16, 16, 16,  4, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 5, 23, 18, 19,  0, 18,  1, 25], device='cuda:0')\n",
      "tensor([16,  4, 18, 16, 16,  4, 16, 16], device='cuda:0')\n",
      "tensor([19, 14, 16,  1, 24,  8, 10, 18], device='cuda:0')\n",
      "tensor([16,  4, 16,  4, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 1,  8, 17, 10, 18, 24, 21, 12], device='cuda:0')\n",
      "tensor([16, 16, 16, 18, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 8, 23, 13, 15, 10, 23, 21, 23], device='cuda:0')\n",
      "tensor([16, 16, 16, 16, 20, 20, 16, 16], device='cuda:0')\n",
      "tensor([ 1, 13, 16,  6,  0,  0, 25, 14], device='cuda:0')\n",
      "tensor([ 4, 16,  4,  4, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 6,  3,  8, 14,  3,  8,  0, 20], device='cuda:0')\n",
      "tensor([16,  4, 16, 16,  4,  4,  4, 16], device='cuda:0')\n",
      "tensor([ 1, 17,  7,  1, 10,  6,  4, 21], device='cuda:0')\n",
      "tensor([ 4, 16, 16,  4,  4, 16,  4, 16], device='cuda:0')\n",
      "tensor([12,  1, 13,  6, 17,  3, 17,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:41.722817, [-INFO]: Accuracy of argmax predictions on the test subset35: 0.000000%\n",
      "Time:2025-04-01 12:36:41.736349, [-INFO]: Accuracy of argmax predictions on the test subset36: 0.000000%\n",
      "Time:2025-04-01 12:36:41.747238, [-INFO]: Accuracy of argmax predictions on the test subset37: 0.000000%\n",
      "Time:2025-04-01 12:36:41.758830, [-INFO]: Accuracy of argmax predictions on the test subset38: 0.000000%\n",
      "Time:2025-04-01 12:36:41.769970, [-INFO]: Accuracy of argmax predictions on the test subset39: 25.000000%\n",
      "Time:2025-04-01 12:36:41.780657, [-INFO]: Accuracy of argmax predictions on the test subset40: 12.500000%\n",
      "Time:2025-04-01 12:36:41.793875, [-INFO]: Accuracy of argmax predictions on the test subset41: 12.500000%\n",
      "Time:2025-04-01 12:36:41.805609, [-INFO]: Accuracy of argmax predictions on the test subset42: 12.500000%\n",
      "Time:2025-04-01 12:36:41.849918, [-INFO]: Accuracy of argmax predictions on the test subset43: 12.500000%\n",
      "Time:2025-04-01 12:36:41.894702, [-INFO]: Accuracy of argmax predictions on the test subset44: 0.000000%\n",
      "Time:2025-04-01 12:36:41.910518, [-INFO]: Accuracy of argmax predictions on the test subset45: 0.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16, 16, 16,  4, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 0, 25, 25, 14, 17, 14,  1, 21], device='cuda:0')\n",
      "tensor([16,  4,  4,  4, 18,  4, 16, 16], device='cuda:0')\n",
      "tensor([ 0, 14, 12, 14, 22, 14, 19, 25], device='cuda:0')\n",
      "tensor([18, 16,  4, 16, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([15, 18, 17, 12, 14, 22,  2, 19], device='cuda:0')\n",
      "tensor([18,  4,  4, 16, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([15,  6,  0, 12, 25,  1,  1, 23], device='cuda:0')\n",
      "tensor([16,  4,  4, 16, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([22,  4,  4, 21, 19, 10,  6, 19], device='cuda:0')\n",
      "tensor([16,  4,  4, 16,  4, 16,  4, 16], device='cuda:0')\n",
      "tensor([23,  4, 17,  4,  8, 20, 17, 21], device='cuda:0')\n",
      "tensor([16,  4, 16, 16, 18,  4, 16, 18], device='cuda:0')\n",
      "tensor([16, 13, 22, 22, 15, 14,  6,  0], device='cuda:0')\n",
      "tensor([16,  4,  4, 16,  4, 16,  4, 16], device='cuda:0')\n",
      "tensor([ 6, 10,  8, 24,  8, 16,  8, 13], device='cuda:0')\n",
      "tensor([16,  4, 16, 20,  4, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  0, 19, 18, 25, 18], device='cuda:0')\n",
      "tensor([20, 16, 16, 16, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 0,  8, 25, 10, 22, 25, 12,  9], device='cuda:0')\n",
      "tensor([ 4, 16, 16, 16, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([23, 10, 24,  1,  2, 21, 19,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:41.926465, [-INFO]: Accuracy of argmax predictions on the test subset46: 0.000000%\n",
      "Time:2025-04-01 12:36:41.927854, [-INFO]: Average Accuracy on test set:8.5106%\n",
      "Time:2025-04-01 12:36:42.038931, [-WARN]: Load model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E6/gnn_model.pkl well.\n",
      "Time:2025-04-01 12:36:42.057936, [-INFO]: Accuracy of argmax predictions on the test subset0: 0.000000%\n",
      "Time:2025-04-01 12:36:42.070820, [-INFO]: Accuracy of argmax predictions on the test subset1: 0.000000%\n",
      "Time:2025-04-01 12:36:42.086681, [-INFO]: Accuracy of argmax predictions on the test subset2: 12.500000%\n",
      "Time:2025-04-01 12:36:42.098701, [-INFO]: Accuracy of argmax predictions on the test subset3: 12.500000%\n",
      "Time:2025-04-01 12:36:42.109993, [-INFO]: Accuracy of argmax predictions on the test subset4: 25.000000%\n",
      "Time:2025-04-01 12:36:42.121578, [-INFO]: Accuracy of argmax predictions on the test subset5: 25.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16,  4, 16, 16, 16, 16, 16, 16], device='cuda:0')\n",
      "tensor([ 1, 12, 10,  8, 18, 25,  0, 23], device='cuda:0')\n",
      "####################################################################################################\n",
      "Now begin eval with the following model parameter!\n",
      "{'latent_feature_length': 140, 'nb_layer': 2}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=140，out_feats=140,num_heads=2\n",
      "Build GAT : in_feats=280，out_feats=280,num_heads=1\n",
      "tensor([20,  4, 18,  4,  4,  4, 18,  4], device='cuda:0')\n",
      "tensor([23,  8, 20,  8,  6, 12, 20,  6], device='cuda:0')\n",
      "tensor([ 4, 18, 20,  4,  4, 20, 20,  4], device='cuda:0')\n",
      "tensor([14, 13, 25, 19, 14, 17, 21, 12], device='cuda:0')\n",
      "tensor([20,  4, 20, 16, 18, 20,  4, 18], device='cuda:0')\n",
      "tensor([11, 17, 23, 22,  0, 23,  4, 21], device='cuda:0')\n",
      "tensor([ 4,  4,  4, 18,  4, 18, 18,  4], device='cuda:0')\n",
      "tensor([14,  8, 10,  1,  6, 18, 20,  9], device='cuda:0')\n",
      "tensor([ 4,  4, 18, 22,  4, 18,  4,  4], device='cuda:0')\n",
      "tensor([ 2,  4, 20,  1,  4, 25, 21, 19], device='cuda:0')\n",
      "tensor([20, 18,  4, 18,  4, 18, 16,  4], device='cuda:0')\n",
      "tensor([23,  0, 12, 20,  5, 18, 16, 17], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:42.136146, [-INFO]: Accuracy of argmax predictions on the test subset6: 0.000000%\n",
      "Time:2025-04-01 12:36:42.179383, [-INFO]: Accuracy of argmax predictions on the test subset7: 0.000000%\n",
      "Time:2025-04-01 12:36:42.191407, [-INFO]: Accuracy of argmax predictions on the test subset8: 12.500000%\n",
      "Time:2025-04-01 12:36:42.202970, [-INFO]: Accuracy of argmax predictions on the test subset9: 0.000000%\n",
      "Time:2025-04-01 12:36:42.213854, [-INFO]: Accuracy of argmax predictions on the test subset10: 0.000000%\n",
      "Time:2025-04-01 12:36:42.261263, [-INFO]: Accuracy of argmax predictions on the test subset11: 0.000000%\n",
      "Time:2025-04-01 12:36:42.272160, [-INFO]: Accuracy of argmax predictions on the test subset12: 25.000000%\n",
      "Time:2025-04-01 12:36:42.285009, [-INFO]: Accuracy of argmax predictions on the test subset13: 12.500000%\n",
      "Time:2025-04-01 12:36:42.299822, [-INFO]: Accuracy of argmax predictions on the test subset14: 12.500000%\n",
      "Time:2025-04-01 12:36:42.310080, [-INFO]: Accuracy of argmax predictions on the test subset15: 12.500000%\n",
      "Time:2025-04-01 12:36:42.321983, [-INFO]: Accuracy of argmax predictions on the test subset16: 25.000000%\n",
      "Time:2025-04-01 12:36:42.333271, [-INFO]: Accuracy of argmax predictions on the test subset17: 37.500000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18, 20,  4, 18, 18,  4, 20, 22], device='cuda:0')\n",
      "tensor([ 0, 23, 14, 24,  5, 19, 19,  1], device='cuda:0')\n",
      "tensor([ 4,  4, 18, 18,  4, 20, 20, 18], device='cuda:0')\n",
      "tensor([12, 14,  0, 24,  8, 23, 23, 20], device='cuda:0')\n",
      "tensor([22, 18, 20,  4,  4,  4,  4,  4], device='cuda:0')\n",
      "tensor([ 1, 20, 23,  4, 12, 11,  6, 23], device='cuda:0')\n",
      "tensor([ 4,  4, 18,  4, 18,  4,  4,  4], device='cuda:0')\n",
      "tensor([12,  6, 24, 23, 22,  8,  6, 12], device='cuda:0')\n",
      "tensor([18, 18, 18, 20, 18,  4,  4,  4], device='cuda:0')\n",
      "tensor([15, 20, 22, 23, 25, 17, 17,  9], device='cuda:0')\n",
      "tensor([ 4, 18, 18, 20, 20, 20,  4, 18], device='cuda:0')\n",
      "tensor([23, 21, 16, 21, 23, 21, 17,  0], device='cuda:0')\n",
      "tensor([22,  4,  4,  4, 22,  4, 20,  4], device='cuda:0')\n",
      "tensor([ 1, 14, 17, 14,  1,  4, 19,  4], device='cuda:0')\n",
      "tensor([18,  4, 18,  4, 18,  4,  4, 18], device='cuda:0')\n",
      "tensor([20,  6, 21, 10,  0, 10,  4, 22], device='cuda:0')\n",
      "tensor([ 4,  4, 18,  4, 20, 20, 22, 18], device='cuda:0')\n",
      "tensor([ 4, 12, 22,  6, 23, 17,  1,  0], device='cuda:0')\n",
      "tensor([ 4, 18, 22,  4, 18, 18, 18, 18], device='cuda:0')\n",
      "tensor([14, 18,  1,  8, 16, 15,  0, 16], device='cuda:0')\n",
      "tensor([20, 18, 20, 22, 18, 18,  4,  4], device='cuda:0')\n",
      "tensor([17, 18, 23,  1, 13, 20,  4, 12], device='cuda:0')\n",
      "tensor([ 4,  4, 18,  4,  4, 18,  4,  4], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  4, 12, 22, 10, 10], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:42.345445, [-INFO]: Accuracy of argmax predictions on the test subset18: 12.500000%\n",
      "Time:2025-04-01 12:36:42.357157, [-INFO]: Accuracy of argmax predictions on the test subset19: 0.000000%\n",
      "Time:2025-04-01 12:36:42.369313, [-INFO]: Accuracy of argmax predictions on the test subset20: 12.500000%\n",
      "Time:2025-04-01 12:36:42.381974, [-INFO]: Accuracy of argmax predictions on the test subset21: 0.000000%\n",
      "Time:2025-04-01 12:36:42.394712, [-INFO]: Accuracy of argmax predictions on the test subset22: 0.000000%\n",
      "Time:2025-04-01 12:36:42.413040, [-INFO]: Accuracy of argmax predictions on the test subset23: 12.500000%\n",
      "Time:2025-04-01 12:36:42.428915, [-INFO]: Accuracy of argmax predictions on the test subset24: 0.000000%\n",
      "Time:2025-04-01 12:36:42.471407, [-INFO]: Accuracy of argmax predictions on the test subset25: 0.000000%\n",
      "Time:2025-04-01 12:36:42.482544, [-INFO]: Accuracy of argmax predictions on the test subset26: 12.500000%\n",
      "Time:2025-04-01 12:36:42.495876, [-INFO]: Accuracy of argmax predictions on the test subset27: 25.000000%\n",
      "Time:2025-04-01 12:36:42.506324, [-INFO]: Accuracy of argmax predictions on the test subset28: 12.500000%\n",
      "Time:2025-04-01 12:36:42.517935, [-INFO]: Accuracy of argmax predictions on the test subset29: 12.500000%\n",
      "Time:2025-04-01 12:36:42.530033, [-INFO]: Accuracy of argmax predictions on the test subset30: 0.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([18, 18, 18, 18, 18, 18, 20, 22], device='cuda:0')\n",
      "tensor([ 4, 21,  5, 18, 16, 16, 17,  1], device='cuda:0')\n",
      "tensor([18, 20,  4, 18,  4, 20, 18, 18], device='cuda:0')\n",
      "tensor([20, 25, 17, 16,  6, 17, 15, 22], device='cuda:0')\n",
      "tensor([ 4, 20, 18,  4, 18,  4,  4,  4], device='cuda:0')\n",
      "tensor([10, 19, 21,  8,  0,  4, 12, 12], device='cuda:0')\n",
      "tensor([ 4, 18,  4,  4,  4, 18, 18,  4], device='cuda:0')\n",
      "tensor([10, 22,  6, 10,  7, 21, 20, 14], device='cuda:0')\n",
      "tensor([18,  4, 20,  4,  4,  4,  4, 18], device='cuda:0')\n",
      "tensor([13, 11, 25,  8, 11, 17, 10, 25], device='cuda:0')\n",
      "tensor([18, 16,  4, 20,  4, 18,  4,  4], device='cuda:0')\n",
      "tensor([ 0, 16,  3, 23,  2, 20,  6, 14], device='cuda:0')\n",
      "tensor([18, 22,  4,  4, 18,  4, 18, 20], device='cuda:0')\n",
      "tensor([11,  1, 17,  7, 15, 19,  0, 25], device='cuda:0')\n",
      "tensor([18, 18,  4,  4,  4, 20, 20, 18], device='cuda:0')\n",
      "tensor([ 0, 15, 12, 10, 10, 21, 17, 16], device='cuda:0')\n",
      "tensor([18, 20, 16, 18, 22,  4, 18, 18], device='cuda:0')\n",
      "tensor([21, 25, 16, 16,  1, 14, 13, 24], device='cuda:0')\n",
      "tensor([ 4, 20, 18,  4, 18, 18, 22, 20], device='cuda:0')\n",
      "tensor([ 5, 23, 18, 19,  0, 18,  1, 25], device='cuda:0')\n",
      "tensor([ 4,  4, 18, 22, 18,  4,  4, 18], device='cuda:0')\n",
      "tensor([19, 14, 16,  1, 24,  8, 10, 18], device='cuda:0')\n",
      "tensor([18,  4, 20,  4, 18, 18, 18,  4], device='cuda:0')\n",
      "tensor([ 1,  8, 17, 10, 18, 24, 21, 12], device='cuda:0')\n",
      "tensor([ 4, 20, 18, 18,  4, 20, 18, 20], device='cuda:0')\n",
      "tensor([ 8, 23, 13, 15, 10, 23, 21, 23], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:42.612846, [-INFO]: Accuracy of argmax predictions on the test subset31: 0.000000%\n",
      "Time:2025-04-01 12:36:42.660383, [-INFO]: Accuracy of argmax predictions on the test subset32: 0.000000%\n",
      "Time:2025-04-01 12:36:42.671594, [-INFO]: Accuracy of argmax predictions on the test subset33: 12.500000%\n",
      "Time:2025-04-01 12:36:42.683259, [-INFO]: Accuracy of argmax predictions on the test subset34: 0.000000%\n",
      "Time:2025-04-01 12:36:42.694978, [-INFO]: Accuracy of argmax predictions on the test subset35: 0.000000%\n",
      "Time:2025-04-01 12:36:42.708838, [-INFO]: Accuracy of argmax predictions on the test subset36: 0.000000%\n",
      "Time:2025-04-01 12:36:42.719289, [-INFO]: Accuracy of argmax predictions on the test subset37: 12.500000%\n",
      "Time:2025-04-01 12:36:42.730679, [-INFO]: Accuracy of argmax predictions on the test subset38: 0.000000%\n",
      "Time:2025-04-01 12:36:42.742083, [-INFO]: Accuracy of argmax predictions on the test subset39: 25.000000%\n",
      "Time:2025-04-01 12:36:42.754264, [-INFO]: Accuracy of argmax predictions on the test subset40: 25.000000%\n",
      "Time:2025-04-01 12:36:42.767576, [-INFO]: Accuracy of argmax predictions on the test subset41: 0.000000%\n",
      "Time:2025-04-01 12:36:42.778945, [-INFO]: Accuracy of argmax predictions on the test subset42: 0.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([22, 18, 18,  4, 18, 18, 20,  4], device='cuda:0')\n",
      "tensor([ 1, 13, 16,  6,  0,  0, 25, 14], device='cuda:0')\n",
      "tensor([ 4,  4,  4,  4,  4,  4, 18, 18], device='cuda:0')\n",
      "tensor([ 6,  3,  8, 14,  3,  8,  0, 20], device='cuda:0')\n",
      "tensor([18,  4,  4, 22,  4,  4,  4, 18], device='cuda:0')\n",
      "tensor([ 1, 17,  7,  1, 10,  6,  4, 21], device='cuda:0')\n",
      "tensor([ 4, 22, 18,  4,  4,  4,  4, 22], device='cuda:0')\n",
      "tensor([12,  1, 13,  6, 17,  3, 17,  1], device='cuda:0')\n",
      "tensor([18, 20, 18,  4,  4,  4, 22, 18], device='cuda:0')\n",
      "tensor([ 0, 25, 25, 14, 17, 14,  1, 21], device='cuda:0')\n",
      "tensor([18,  4,  4,  4, 18,  4, 20, 20], device='cuda:0')\n",
      "tensor([ 0, 14, 12, 14, 22, 14, 19, 25], device='cuda:0')\n",
      "tensor([18, 18,  4,  4,  4, 18,  4, 20], device='cuda:0')\n",
      "tensor([15, 18, 17, 12, 14, 22,  2, 19], device='cuda:0')\n",
      "tensor([18,  4, 18,  4, 18, 22, 22, 20], device='cuda:0')\n",
      "tensor([15,  6,  0, 12, 25,  1,  1, 23], device='cuda:0')\n",
      "tensor([18,  4,  4,  4, 20,  4,  4, 20], device='cuda:0')\n",
      "tensor([22,  4,  4, 21, 19, 10,  6, 19], device='cuda:0')\n",
      "tensor([20,  4,  4,  4,  4, 18,  4, 20], device='cuda:0')\n",
      "tensor([23,  4, 17,  4,  8, 20, 17, 21], device='cuda:0')\n",
      "tensor([18,  4, 16, 16, 18,  4,  4, 18], device='cuda:0')\n",
      "tensor([16, 13, 22, 22, 15, 14,  6,  0], device='cuda:0')\n",
      "tensor([ 4,  4,  4, 18,  4, 18,  4, 18], device='cuda:0')\n",
      "tensor([ 6, 10,  8, 24,  8, 16,  8, 13], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:42.824397, [-INFO]: Accuracy of argmax predictions on the test subset43: 50.000000%\n",
      "Time:2025-04-01 12:36:42.868795, [-INFO]: Accuracy of argmax predictions on the test subset44: 0.000000%\n",
      "Time:2025-04-01 12:36:42.884983, [-INFO]: Accuracy of argmax predictions on the test subset45: 0.000000%\n",
      "Time:2025-04-01 12:36:42.899564, [-INFO]: Accuracy of argmax predictions on the test subset46: 12.500000%\n",
      "Time:2025-04-01 12:36:42.900862, [-INFO]: Average Accuracy on test set:9.5745%\n",
      "Time:2025-04-01 12:36:43.007784, [-WARN]: Load model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E8/gnn_model.pkl well.\n",
      "Time:2025-04-01 12:36:43.022999, [-INFO]: Accuracy of argmax predictions on the test subset0: 50.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 4,  4, 18, 18,  4, 18, 20, 18], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  0, 19, 18, 25, 18], device='cuda:0')\n",
      "tensor([ 4,  4, 18,  4, 18, 18,  4, 18], device='cuda:0')\n",
      "tensor([ 0,  8, 25, 10, 22, 25, 12,  9], device='cuda:0')\n",
      "tensor([ 4,  4, 18, 18,  4, 20, 20, 18], device='cuda:0')\n",
      "tensor([23, 10, 24,  1,  2, 21, 19,  0], device='cuda:0')\n",
      "tensor([22,  4,  4,  4, 18, 20, 18, 20], device='cuda:0')\n",
      "tensor([ 1, 12, 10,  8, 18, 25,  0, 23], device='cuda:0')\n",
      "####################################################################################################\n",
      "Now begin eval with the following model parameter!\n",
      "{'latent_feature_length': 100, 'nb_layer': 1}\n",
      "Train GAT model.\n",
      "Build GAT : in_feats=100，out_feats=100,num_heads=1\n",
      "tensor([23,  6, 20, 10,  6,  6, 20, 10], device='cuda:0')\n",
      "tensor([23,  8, 20,  8,  6, 12, 20,  6], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:43.035445, [-INFO]: Accuracy of argmax predictions on the test subset1: 0.000000%\n",
      "Time:2025-04-01 12:36:43.104028, [-INFO]: Accuracy of argmax predictions on the test subset2: 75.000000%\n",
      "Time:2025-04-01 12:36:43.113228, [-INFO]: Accuracy of argmax predictions on the test subset3: 25.000000%\n",
      "Time:2025-04-01 12:36:43.122290, [-INFO]: Accuracy of argmax predictions on the test subset4: 62.500000%\n",
      "Time:2025-04-01 12:36:43.132089, [-INFO]: Accuracy of argmax predictions on the test subset5: 25.000000%\n",
      "Time:2025-04-01 12:36:43.144052, [-INFO]: Accuracy of argmax predictions on the test subset6: 50.000000%\n",
      "Time:2025-04-01 12:36:43.184875, [-INFO]: Accuracy of argmax predictions on the test subset7: 37.500000%\n",
      "Time:2025-04-01 12:36:43.194087, [-INFO]: Accuracy of argmax predictions on the test subset8: 37.500000%\n",
      "Time:2025-04-01 12:36:43.203489, [-INFO]: Accuracy of argmax predictions on the test subset9: 25.000000%\n",
      "Time:2025-04-01 12:36:43.223465, [-INFO]: Accuracy of argmax predictions on the test subset10: 50.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10, 18, 23, 23, 10, 19, 23,  6], device='cuda:0')\n",
      "tensor([14, 13, 25, 19, 14, 17, 21, 12], device='cuda:0')\n",
      "tensor([11, 23, 23, 22, 20, 23,  4, 21], device='cuda:0')\n",
      "tensor([11, 17, 23, 22,  0, 23,  4, 21], device='cuda:0')\n",
      "tensor([ 6,  6, 10,  1, 10, 23, 23, 11], device='cuda:0')\n",
      "tensor([14,  8, 10,  1,  6, 18, 20,  9], device='cuda:0')\n",
      "tensor([ 3,  4, 20,  1,  4, 23, 19, 19], device='cuda:0')\n",
      "tensor([ 2,  4, 20,  1,  4, 25, 21, 19], device='cuda:0')\n",
      "tensor([23, 18,  6, 20, 18, 23, 22, 19], device='cuda:0')\n",
      "tensor([23,  0, 12, 20,  5, 18, 16, 17], device='cuda:0')\n",
      "tensor([20, 23, 10, 24,  7, 19, 23,  1], device='cuda:0')\n",
      "tensor([ 0, 23, 14, 24,  5, 19, 19,  1], device='cuda:0')\n",
      "tensor([10,  6, 13, 24,  6, 23, 23, 23], device='cuda:0')\n",
      "tensor([12, 14,  0, 24,  8, 23, 23, 20], device='cuda:0')\n",
      "tensor([ 1, 24, 17,  4,  6, 11, 10, 17], device='cuda:0')\n",
      "tensor([ 1, 20, 23,  4, 12, 11,  6, 23], device='cuda:0')\n",
      "tensor([10,  6, 24, 19, 23,  6, 10, 10], device='cuda:0')\n",
      "tensor([12,  6, 24, 23, 22,  8,  6, 12], device='cuda:0')\n",
      "tensor([15, 20, 18, 23, 21, 17, 23, 11], device='cuda:0')\n",
      "tensor([15, 20, 22, 23, 25, 17, 17,  9], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:43.273568, [-INFO]: Accuracy of argmax predictions on the test subset11: 37.500000%\n",
      "Time:2025-04-01 12:36:43.285749, [-INFO]: Accuracy of argmax predictions on the test subset12: 50.000000%\n",
      "Time:2025-04-01 12:36:43.299313, [-INFO]: Accuracy of argmax predictions on the test subset13: 37.500000%\n",
      "Time:2025-04-01 12:36:43.312985, [-INFO]: Accuracy of argmax predictions on the test subset14: 37.500000%\n",
      "Time:2025-04-01 12:36:43.322904, [-INFO]: Accuracy of argmax predictions on the test subset15: 25.000000%\n",
      "Time:2025-04-01 12:36:43.333767, [-INFO]: Accuracy of argmax predictions on the test subset16: 25.000000%\n",
      "Time:2025-04-01 12:36:43.344110, [-INFO]: Accuracy of argmax predictions on the test subset17: 75.000000%\n",
      "Time:2025-04-01 12:36:43.354422, [-INFO]: Accuracy of argmax predictions on the test subset18: 25.000000%\n",
      "Time:2025-04-01 12:36:43.364687, [-INFO]: Accuracy of argmax predictions on the test subset19: 25.000000%\n",
      "Time:2025-04-01 12:36:43.375528, [-INFO]: Accuracy of argmax predictions on the test subset20: 37.500000%\n",
      "Time:2025-04-01 12:36:43.386243, [-INFO]: Accuracy of argmax predictions on the test subset21: 50.000000%\n",
      "Time:2025-04-01 12:36:43.397990, [-INFO]: Accuracy of argmax predictions on the test subset22: 37.500000%\n",
      "Time:2025-04-01 12:36:43.413222, [-INFO]: Accuracy of argmax predictions on the test subset23: 37.500000%\n",
      "Time:2025-04-01 12:36:43.425612, [-INFO]: Accuracy of argmax predictions on the test subset24: 37.500000%\n",
      "Time:2025-04-01 12:36:43.466334, [-INFO]: Accuracy of argmax predictions on the test subset25: 25.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 21, 24, 23, 23, 23, 19, 13], device='cuda:0')\n",
      "tensor([23, 21, 16, 21, 23, 21, 17,  0], device='cuda:0')\n",
      "tensor([ 1,  6, 19, 10,  1,  4, 23,  4], device='cuda:0')\n",
      "tensor([ 1, 14, 17, 14,  1,  4, 19,  4], device='cuda:0')\n",
      "tensor([ 8, 10, 21,  6, 20, 10,  4, 18], device='cuda:0')\n",
      "tensor([20,  6, 21, 10,  0, 10,  4, 22], device='cuda:0')\n",
      "tensor([ 4, 10, 18, 10, 23, 19,  1, 24], device='cuda:0')\n",
      "tensor([ 4, 12, 22,  6, 23, 17,  1,  0], device='cuda:0')\n",
      "tensor([10, 23,  1,  6, 18, 10,  0, 23], device='cuda:0')\n",
      "tensor([14, 18,  1,  8, 16, 15,  0, 16], device='cuda:0')\n",
      "tensor([19, 24, 19,  1, 18, 24,  4, 10], device='cuda:0')\n",
      "tensor([17, 18, 23,  1, 13, 20,  4, 12], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  4,  6, 23, 10, 10], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  4, 12, 22, 10, 10], device='cuda:0')\n",
      "tensor([22, 21, 18, 23, 23, 24, 23,  1], device='cuda:0')\n",
      "tensor([ 4, 21,  5, 18, 16, 16, 17,  1], device='cuda:0')\n",
      "tensor([20, 23, 19, 23,  6, 19, 11, 23], device='cuda:0')\n",
      "tensor([20, 25, 17, 16,  6, 17, 15, 22], device='cuda:0')\n",
      "tensor([10, 17, 21, 10, 18,  4, 10,  6], device='cuda:0')\n",
      "tensor([10, 19, 21,  8,  0,  4, 12, 12], device='cuda:0')\n",
      "tensor([10, 23, 10, 10, 11, 21, 20, 10], device='cuda:0')\n",
      "tensor([10, 22,  6, 10,  7, 21, 20, 14], device='cuda:0')\n",
      "tensor([18, 11, 23, 10, 11, 19,  6, 25], device='cuda:0')\n",
      "tensor([13, 11, 25,  8, 11, 17, 10, 25], device='cuda:0')\n",
      "tensor([20, 22,  3, 23,  3, 20, 10, 10], device='cuda:0')\n",
      "tensor([ 0, 16,  3, 23,  2, 20,  6, 14], device='cuda:0')\n",
      "tensor([24,  1, 19, 18, 24, 19,  0, 19], device='cuda:0')\n",
      "tensor([11,  1, 17,  7, 15, 19,  0, 25], device='cuda:0')\n",
      "tensor([18, 22,  6, 10, 10, 23, 19, 24], device='cuda:0')\n",
      "tensor([ 0, 15, 12, 10, 10, 21, 17, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:43.477617, [-INFO]: Accuracy of argmax predictions on the test subset26: 37.500000%\n",
      "Time:2025-04-01 12:36:43.489992, [-INFO]: Accuracy of argmax predictions on the test subset27: 25.000000%\n",
      "Time:2025-04-01 12:36:43.499911, [-INFO]: Accuracy of argmax predictions on the test subset28: 37.500000%\n",
      "Time:2025-04-01 12:36:43.510039, [-INFO]: Accuracy of argmax predictions on the test subset29: 25.000000%\n",
      "Time:2025-04-01 12:36:43.520325, [-INFO]: Accuracy of argmax predictions on the test subset30: 37.500000%\n",
      "Time:2025-04-01 12:36:43.599529, [-INFO]: Accuracy of argmax predictions on the test subset31: 25.000000%\n",
      "Time:2025-04-01 12:36:43.644481, [-INFO]: Accuracy of argmax predictions on the test subset32: 37.500000%\n",
      "Time:2025-04-01 12:36:43.654446, [-INFO]: Accuracy of argmax predictions on the test subset33: 62.500000%\n",
      "Time:2025-04-01 12:36:43.664251, [-INFO]: Accuracy of argmax predictions on the test subset34: 37.500000%\n",
      "Time:2025-04-01 12:36:43.674341, [-INFO]: Accuracy of argmax predictions on the test subset35: 12.500000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([21, 23, 22, 23,  1, 10, 18, 24], device='cuda:0')\n",
      "tensor([21, 25, 16, 16,  1, 14, 13, 24], device='cuda:0')\n",
      "tensor([18, 17, 23, 19, 20,  8,  1, 23], device='cuda:0')\n",
      "tensor([ 5, 23, 18, 19,  0, 18,  1, 25], device='cuda:0')\n",
      "tensor([23, 10, 16, 22, 24, 10, 10, 23], device='cuda:0')\n",
      "tensor([19, 14, 16,  1, 24,  8, 10, 18], device='cuda:0')\n",
      "tensor([22, 10, 17, 10, 23, 23, 23, 10], device='cuda:0')\n",
      "tensor([ 1,  8, 17, 10, 18, 24, 21, 12], device='cuda:0')\n",
      "tensor([ 6, 23, 18, 22,  6, 23, 25, 23], device='cuda:0')\n",
      "tensor([ 8, 23, 13, 15, 10, 23, 21, 23], device='cuda:0')\n",
      "tensor([ 1, 18, 24,  6, 18, 18, 23,  6], device='cuda:0')\n",
      "tensor([ 1, 13, 16,  6,  0,  0, 25, 14], device='cuda:0')\n",
      "tensor([10,  3, 10, 10,  3,  6, 13, 20], device='cuda:0')\n",
      "tensor([ 6,  3,  8, 14,  3,  8,  0, 20], device='cuda:0')\n",
      "tensor([ 1, 19, 18,  1, 10,  8,  4, 21], device='cuda:0')\n",
      "tensor([ 1, 17,  7,  1, 10,  6,  4, 21], device='cuda:0')\n",
      "tensor([10,  1, 18, 10, 19,  3, 19,  1], device='cuda:0')\n",
      "tensor([12,  1, 13,  6, 17,  3, 17,  1], device='cuda:0')\n",
      "tensor([24, 23, 21, 10, 19,  6,  1, 25], device='cuda:0')\n",
      "tensor([ 0, 25, 25, 14, 17, 14,  1, 21], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:43.687308, [-INFO]: Accuracy of argmax predictions on the test subset36: 0.000000%\n",
      "Time:2025-04-01 12:36:43.697543, [-INFO]: Accuracy of argmax predictions on the test subset37: 25.000000%\n",
      "Time:2025-04-01 12:36:43.708166, [-INFO]: Accuracy of argmax predictions on the test subset38: 62.500000%\n",
      "Time:2025-04-01 12:36:43.719106, [-INFO]: Accuracy of argmax predictions on the test subset39: 62.500000%\n",
      "Time:2025-04-01 12:36:43.730198, [-INFO]: Accuracy of argmax predictions on the test subset40: 50.000000%\n",
      "Time:2025-04-01 12:36:43.743779, [-INFO]: Accuracy of argmax predictions on the test subset41: 37.500000%\n",
      "Time:2025-04-01 12:36:43.753973, [-INFO]: Accuracy of argmax predictions on the test subset42: 0.000000%\n",
      "Time:2025-04-01 12:36:43.797497, [-INFO]: Accuracy of argmax predictions on the test subset43: 37.500000%\n",
      "Time:2025-04-01 12:36:43.844836, [-INFO]: Accuracy of argmax predictions on the test subset44: 25.000000%\n",
      "Time:2025-04-01 12:36:43.860675, [-INFO]: Accuracy of argmax predictions on the test subset45: 37.500000%\n",
      "Time:2025-04-01 12:36:43.875059, [-INFO]: Accuracy of argmax predictions on the test subset46: 50.000000%\n",
      "Time:2025-04-01 12:36:43.877178, [-INFO]: Average Accuracy on test set:36.7021%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([20, 10, 10, 10, 18, 10, 23, 23], device='cuda:0')\n",
      "tensor([ 0, 14, 12, 14, 22, 14, 19, 25], device='cuda:0')\n",
      "tensor([15, 16, 19,  6,  6, 18,  3, 19], device='cuda:0')\n",
      "tensor([15, 18, 17, 12, 14, 22,  2, 19], device='cuda:0')\n",
      "tensor([18, 10,  0,  6, 25,  1,  1, 23], device='cuda:0')\n",
      "tensor([15,  6,  0, 12, 25,  1,  1, 23], device='cuda:0')\n",
      "tensor([24,  4,  4, 21, 23,  6,  6, 19], device='cuda:0')\n",
      "tensor([22,  4,  4, 21, 19, 10,  6, 19], device='cuda:0')\n",
      "tensor([23,  4, 19,  4, 10, 20, 19, 23], device='cuda:0')\n",
      "tensor([23,  4, 17,  4,  8, 20, 17, 21], device='cuda:0')\n",
      "tensor([24, 23, 22, 22, 22, 10,  6, 24], device='cuda:0')\n",
      "tensor([16, 13, 22, 22, 15, 14,  6,  0], device='cuda:0')\n",
      "tensor([10,  6, 10, 23, 10, 23, 10, 18], device='cuda:0')\n",
      "tensor([ 6, 10,  8, 24,  8, 16,  8, 13], device='cuda:0')\n",
      "tensor([ 4,  4, 21,  1, 19, 24, 23, 23], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  0, 19, 18, 25, 18], device='cuda:0')\n",
      "tensor([18,  6, 21, 10, 23, 25,  6, 18], device='cuda:0')\n",
      "tensor([ 0,  8, 25, 10, 22, 25, 12,  9], device='cuda:0')\n",
      "tensor([10,  6, 24,  1,  3, 23, 19, 20], device='cuda:0')\n",
      "tensor([23, 10, 24,  1,  2, 21, 19,  0], device='cuda:0')\n",
      "tensor([ 1, 10, 10,  6, 23, 23,  0, 23], device='cuda:0')\n",
      "tensor([ 1, 12, 10,  8, 18, 25,  0, 23], device='cuda:0')\n",
      "####################################################################################################\n",
      "Now begin eval with the following model parameter!\n",
      "{'latent_feature_length': 100, 'nb_layer': 3}\n",
      "Train GAT model.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:43.995405, [-WARN]: Load model from ./data/fgnet_CIC_IOT-dataset-2017_src2des_model/saved_model_E9/gnn_model.pkl well.\n",
      "Time:2025-04-01 12:36:44.014368, [-INFO]: Accuracy of argmax predictions on the test subset0: 12.500000%\n",
      "Time:2025-04-01 12:36:44.029441, [-INFO]: Accuracy of argmax predictions on the test subset1: 12.500000%\n",
      "Time:2025-04-01 12:36:44.047431, [-INFO]: Accuracy of argmax predictions on the test subset2: 75.000000%\n",
      "Time:2025-04-01 12:36:44.060773, [-INFO]: Accuracy of argmax predictions on the test subset3: 37.500000%\n",
      "Time:2025-04-01 12:36:44.079112, [-INFO]: Accuracy of argmax predictions on the test subset4: 50.000000%\n",
      "Time:2025-04-01 12:36:44.106878, [-INFO]: Accuracy of argmax predictions on the test subset5: 12.500000%\n",
      "Time:2025-04-01 12:36:44.136117, [-INFO]: Accuracy of argmax predictions on the test subset6: 50.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Build GAT : in_feats=100，out_feats=100,num_heads=3\n",
      "Build GAT : in_feats=300，out_feats=200,num_heads=2\n",
      "Build GAT : in_feats=400，out_feats=400,num_heads=1\n",
      "tensor([23, 14, 22, 10, 14, 10, 22, 10], device='cuda:0')\n",
      "tensor([23,  8, 20,  8,  6, 12, 20,  6], device='cuda:0')\n",
      "tensor([10, 22, 23, 19, 10, 19, 23, 14], device='cuda:0')\n",
      "tensor([14, 13, 25, 19, 14, 17, 21, 12], device='cuda:0')\n",
      "tensor([ 7, 17, 23, 22, 25, 23,  4, 21], device='cuda:0')\n",
      "tensor([11, 17, 23, 22,  0, 23,  4, 21], device='cuda:0')\n",
      "tensor([14, 14, 10,  1, 10, 22, 22, 24], device='cuda:0')\n",
      "tensor([14,  8, 10,  1,  6, 18, 20,  9], device='cuda:0')\n",
      "tensor([ 3,  6, 22,  1,  4, 21, 21, 19], device='cuda:0')\n",
      "tensor([ 2,  4, 20,  1,  4, 25, 21, 19], device='cuda:0')\n",
      "tensor([23, 22, 14, 22, 16, 22, 22, 23], device='cuda:0')\n",
      "tensor([23,  0, 12, 20,  5, 18, 16, 17], device='cuda:0')\n",
      "tensor([25, 23, 14, 24,  7, 23, 23,  1], device='cuda:0')\n",
      "tensor([ 0, 23, 14, 24,  5, 19, 19,  1], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:44.188665, [-INFO]: Accuracy of argmax predictions on the test subset7: 50.000000%\n",
      "Time:2025-04-01 12:36:44.203127, [-INFO]: Accuracy of argmax predictions on the test subset8: 25.000000%\n",
      "Time:2025-04-01 12:36:44.218303, [-INFO]: Accuracy of argmax predictions on the test subset9: 25.000000%\n",
      "Time:2025-04-01 12:36:44.233491, [-INFO]: Accuracy of argmax predictions on the test subset10: 50.000000%\n",
      "Time:2025-04-01 12:36:44.283200, [-INFO]: Accuracy of argmax predictions on the test subset11: 37.500000%\n",
      "Time:2025-04-01 12:36:44.303536, [-INFO]: Accuracy of argmax predictions on the test subset12: 50.000000%\n",
      "Time:2025-04-01 12:36:44.325449, [-INFO]: Accuracy of argmax predictions on the test subset13: 37.500000%\n",
      "Time:2025-04-01 12:36:44.351550, [-INFO]: Accuracy of argmax predictions on the test subset14: 37.500000%\n",
      "Time:2025-04-01 12:36:44.373224, [-INFO]: Accuracy of argmax predictions on the test subset15: 25.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10, 14, 18, 24, 14, 23, 23, 22], device='cuda:0')\n",
      "tensor([12, 14,  0, 24,  8, 23, 23, 20], device='cuda:0')\n",
      "tensor([ 1, 22, 23,  6, 10, 24, 10, 17], device='cuda:0')\n",
      "tensor([ 1, 20, 23,  4, 12, 11,  6, 23], device='cuda:0')\n",
      "tensor([10, 14, 24, 19, 22, 14, 10, 10], device='cuda:0')\n",
      "tensor([12,  6, 24, 23, 22,  8,  6, 12], device='cuda:0')\n",
      "tensor([15, 22, 22, 23, 21, 17, 23, 24], device='cuda:0')\n",
      "tensor([15, 20, 22, 23, 25, 17, 17,  9], device='cuda:0')\n",
      "tensor([23, 21, 24, 23, 23, 23, 19, 18], device='cuda:0')\n",
      "tensor([23, 21, 16, 21, 23, 21, 17,  0], device='cuda:0')\n",
      "tensor([ 1, 10, 19, 14,  1,  6, 23,  4], device='cuda:0')\n",
      "tensor([ 1, 14, 17, 14,  1,  4, 19,  4], device='cuda:0')\n",
      "tensor([ 8, 10, 21, 12, 25, 10,  6, 22], device='cuda:0')\n",
      "tensor([20,  6, 21, 10,  0, 10,  4, 22], device='cuda:0')\n",
      "tensor([ 6, 10, 16, 10, 23, 19,  1,  0], device='cuda:0')\n",
      "tensor([ 4, 12, 22,  6, 23, 17,  1,  0], device='cuda:0')\n",
      "tensor([10, 22,  1, 12, 24, 21,  0, 22], device='cuda:0')\n",
      "tensor([14, 18,  1,  8, 16, 15,  0, 16], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:44.396485, [-INFO]: Accuracy of argmax predictions on the test subset16: 25.000000%\n",
      "Time:2025-04-01 12:36:44.425204, [-INFO]: Accuracy of argmax predictions on the test subset17: 37.500000%\n",
      "Time:2025-04-01 12:36:44.450562, [-INFO]: Accuracy of argmax predictions on the test subset18: 25.000000%\n",
      "Time:2025-04-01 12:36:44.472921, [-INFO]: Accuracy of argmax predictions on the test subset19: 12.500000%\n",
      "Time:2025-04-01 12:36:44.493560, [-INFO]: Accuracy of argmax predictions on the test subset20: 25.000000%\n",
      "Time:2025-04-01 12:36:44.512260, [-INFO]: Accuracy of argmax predictions on the test subset21: 50.000000%\n",
      "Time:2025-04-01 12:36:44.530781, [-INFO]: Accuracy of argmax predictions on the test subset22: 0.000000%\n",
      "Time:2025-04-01 12:36:44.553983, [-INFO]: Accuracy of argmax predictions on the test subset23: 37.500000%\n",
      "Time:2025-04-01 12:36:44.572385, [-INFO]: Accuracy of argmax predictions on the test subset24: 25.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([23, 16, 19,  1, 22, 22,  4, 10], device='cuda:0')\n",
      "tensor([17, 18, 23,  1, 13, 20,  4, 12], device='cuda:0')\n",
      "tensor([ 4,  6, 21,  6, 14, 22, 14, 10], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  4, 12, 22, 10, 10], device='cuda:0')\n",
      "tensor([22, 21, 15, 22, 22, 24, 23,  1], device='cuda:0')\n",
      "tensor([ 4, 21,  5, 18, 16, 16, 17,  1], device='cuda:0')\n",
      "tensor([22, 23, 23, 22, 14, 23,  7, 22], device='cuda:0')\n",
      "tensor([20, 25, 17, 16,  6, 17, 15, 22], device='cuda:0')\n",
      "tensor([10, 23, 21, 14, 16,  6, 10, 14], device='cuda:0')\n",
      "tensor([10, 19, 21,  8,  0,  4, 12, 12], device='cuda:0')\n",
      "tensor([10, 22, 10, 10, 16, 21, 22, 10], device='cuda:0')\n",
      "tensor([10, 22,  6, 10,  7, 21, 20, 14], device='cuda:0')\n",
      "tensor([22, 18, 23, 10, 24, 19, 14, 21], device='cuda:0')\n",
      "tensor([13, 11, 25,  8, 11, 17, 10, 25], device='cuda:0')\n",
      "tensor([25, 22,  3, 23,  3, 22, 10, 14], device='cuda:0')\n",
      "tensor([ 0, 16,  3, 23,  2, 20,  6, 14], device='cuda:0')\n",
      "tensor([ 7,  1, 19, 16, 24, 19, 21, 21], device='cuda:0')\n",
      "tensor([11,  1, 17,  7, 15, 19,  0, 25], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:44.618586, [-INFO]: Accuracy of argmax predictions on the test subset25: 25.000000%\n",
      "Time:2025-04-01 12:36:44.633947, [-INFO]: Accuracy of argmax predictions on the test subset26: 50.000000%\n",
      "Time:2025-04-01 12:36:44.651045, [-INFO]: Accuracy of argmax predictions on the test subset27: 37.500000%\n",
      "Time:2025-04-01 12:36:44.678190, [-INFO]: Accuracy of argmax predictions on the test subset28: 12.500000%\n",
      "Time:2025-04-01 12:36:44.701733, [-INFO]: Accuracy of argmax predictions on the test subset29: 12.500000%\n",
      "Time:2025-04-01 12:36:44.721957, [-INFO]: Accuracy of argmax predictions on the test subset30: 62.500000%\n",
      "Time:2025-04-01 12:36:44.807155, [-INFO]: Accuracy of argmax predictions on the test subset31: 25.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([16, 15, 14, 21, 10, 23, 19, 24], device='cuda:0')\n",
      "tensor([ 0, 15, 12, 10, 10, 21, 17, 16], device='cuda:0')\n",
      "tensor([21, 23, 22, 22,  1, 14, 22, 24], device='cuda:0')\n",
      "tensor([21, 25, 16, 16,  1, 14, 13, 24], device='cuda:0')\n",
      "tensor([16, 23, 22, 19, 25,  8,  1, 23], device='cuda:0')\n",
      "tensor([ 5, 23, 18, 19,  0, 18,  1, 25], device='cuda:0')\n",
      "tensor([17, 10, 18, 24, 24, 10, 14, 22], device='cuda:0')\n",
      "tensor([19, 14, 16,  1, 24,  8, 10, 18], device='cuda:0')\n",
      "tensor([24, 10, 23, 10, 22, 22, 16, 14], device='cuda:0')\n",
      "tensor([ 1,  8, 17, 10, 18, 24, 21, 12], device='cuda:0')\n",
      "tensor([14, 23, 22, 15, 14, 23, 21, 23], device='cuda:0')\n",
      "tensor([ 8, 23, 13, 15, 10, 23, 21, 23], device='cuda:0')\n",
      "tensor([ 1, 22, 24, 14,  8, 16, 23, 14], device='cuda:0')\n",
      "tensor([ 1, 13, 16,  6,  0,  0, 25, 14], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:44.859259, [-INFO]: Accuracy of argmax predictions on the test subset32: 25.000000%\n",
      "Time:2025-04-01 12:36:44.874952, [-INFO]: Accuracy of argmax predictions on the test subset33: 50.000000%\n",
      "Time:2025-04-01 12:36:44.891836, [-INFO]: Accuracy of argmax predictions on the test subset34: 37.500000%\n",
      "Time:2025-04-01 12:36:44.907527, [-INFO]: Accuracy of argmax predictions on the test subset35: 37.500000%\n",
      "Time:2025-04-01 12:36:44.926138, [-INFO]: Accuracy of argmax predictions on the test subset36: 12.500000%\n",
      "Time:2025-04-01 12:36:44.948687, [-INFO]: Accuracy of argmax predictions on the test subset37: 37.500000%\n",
      "Time:2025-04-01 12:36:44.969111, [-INFO]: Accuracy of argmax predictions on the test subset38: 75.000000%\n",
      "Time:2025-04-01 12:36:44.991799, [-INFO]: Accuracy of argmax predictions on the test subset39: 50.000000%\n",
      "Time:2025-04-01 12:36:45.020860, [-INFO]: Accuracy of argmax predictions on the test subset40: 25.000000%\n",
      "Time:2025-04-01 12:36:45.054944, [-INFO]: Accuracy of argmax predictions on the test subset41: 50.000000%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([10,  3, 10, 10,  3, 14, 18, 22], device='cuda:0')\n",
      "tensor([ 6,  3,  8, 14,  3,  8,  0, 20], device='cuda:0')\n",
      "tensor([ 1, 19, 16,  1, 10, 12,  3, 21], device='cuda:0')\n",
      "tensor([ 1, 17,  7,  1, 10,  6,  4, 21], device='cuda:0')\n",
      "tensor([10,  1, 22, 10, 19,  3, 19,  1], device='cuda:0')\n",
      "tensor([12,  1, 13,  6, 17,  3, 17,  1], device='cuda:0')\n",
      "tensor([21, 23, 21, 10, 23, 14,  1, 21], device='cuda:0')\n",
      "tensor([ 0, 25, 25, 14, 17, 14,  1, 21], device='cuda:0')\n",
      "tensor([25, 10, 10, 10, 22, 10, 23, 23], device='cuda:0')\n",
      "tensor([ 0, 14, 12, 14, 22, 14, 19, 25], device='cuda:0')\n",
      "tensor([15, 22, 19, 14, 14, 22,  3, 23], device='cuda:0')\n",
      "tensor([15, 18, 17, 12, 14, 22,  2, 19], device='cuda:0')\n",
      "tensor([15, 10,  0, 12, 21,  1,  1, 23], device='cuda:0')\n",
      "tensor([15,  6,  0, 12, 25,  1,  1, 23], device='cuda:0')\n",
      "tensor([22,  4,  4, 21, 23, 14, 14, 23], device='cuda:0')\n",
      "tensor([22,  4,  4, 21, 19, 10,  6, 19], device='cuda:0')\n",
      "tensor([23,  4, 19,  6, 10, 22, 23, 23], device='cuda:0')\n",
      "tensor([23,  4, 17,  4,  8, 20, 17, 21], device='cuda:0')\n",
      "tensor([24, 16, 22, 22, 15, 10, 10,  0], device='cuda:0')\n",
      "tensor([16, 13, 22, 22, 15, 14,  6,  0], device='cuda:0')\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Time:2025-04-01 12:36:45.083129, [-INFO]: Accuracy of argmax predictions on the test subset42: 0.000000%\n",
      "Time:2025-04-01 12:36:45.134698, [-INFO]: Accuracy of argmax predictions on the test subset43: 25.000000%\n",
      "Time:2025-04-01 12:36:45.182884, [-INFO]: Accuracy of argmax predictions on the test subset44: 12.500000%\n",
      "Time:2025-04-01 12:36:45.203737, [-INFO]: Accuracy of argmax predictions on the test subset45: 25.000000%\n",
      "Time:2025-04-01 12:36:45.243748, [-INFO]: Accuracy of argmax predictions on the test subset46: 25.000000%\n",
      "Time:2025-04-01 12:36:45.246414, [-INFO]: Average Accuracy on test set:32.7128%\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([14, 14, 10, 22, 10, 22, 10, 22], device='cuda:0')\n",
      "tensor([ 6, 10,  8, 24,  8, 16,  8, 13], device='cuda:0')\n",
      "tensor([ 6,  4, 21,  8, 19, 16, 23, 22], device='cuda:0')\n",
      "tensor([ 4,  4, 25,  0, 19, 18, 25, 18], device='cuda:0')\n",
      "tensor([ 8, 14, 16, 14, 22, 21, 14,  7], device='cuda:0')\n",
      "tensor([ 0,  8, 25, 10, 22, 25, 12,  9], device='cuda:0')\n",
      "tensor([10, 14, 24,  8,  3, 23, 19, 25], device='cuda:0')\n",
      "tensor([23, 10, 24,  1,  2, 21, 19,  0], device='cuda:0')\n",
      "tensor([ 1, 10, 14, 14, 22, 23, 21, 23], device='cuda:0')\n",
      "tensor([ 1, 12, 10,  8, 18, 25,  0, 23], device='cuda:0')\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGzCAYAAAAFROyYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9d7wkV3Utjq+KXR1umDyakVAiCAECgUm2QBgEAgQGPYLFAyQENjwTBRh+gI2MRPqAEzYY8TAGbCzjh7HJBiQQfHlgLJBJRhJIKEujybe77+2u7krn90ftfepUdaW+mmEGXu3PR5/R3KlbXV116px11l57bU0IIdBEE0000UQTTTRxFIV+pC+giSaaaKKJJppoIhsNQGmiiSaaaKKJJo66aABKE0000UQTTTRx1EUDUJpoookmmmiiiaMuGoDSRBNNNNFEE00cddEAlCaaaKKJJppo4qiLBqA00UQTTTTRRBNHXTQApYkmmmiiiSaaOOqiAShNNNFEE0000cRRFw1AaeKIxcc//nFomoZbb731SF/KEYn/179/E//vxQknnICnPe1pR/oymvgViQagNNFEE0000UQTR100AKWJJppoookmmjjqogEoTTTRxCGN8Xh8pC/hlxqTyQRRFB3py2iiiV+7aABKE0ddfPCDH8QDHvAAtFot7NixA694xSvQ7/dTx9x444141rOehe3bt8NxHBx77LE477zzMBgM5DFXXnklzjjjDCwvL6PX6+F+97sf3vKWt1R+/sc+9jE8/vGPx9atW9FqtXDqqafisssumzmO8+nf/va38YhHPAKO4+Ckk07CP/zDP8wce+211+Lxj3882u02jj32WLzjHe+ovaj95Cc/wYte9CKcdNJJcBwH27dvx4tf/GIcOHBg5ti77roLL3nJS7Bjxw60Wi2ceOKJ+IM/+AN4nieP6ff7eO1rX4sTTjgBrVYLxx57LM4//3zs378fQLE25pvf/CY0TcM3v/lN+bPHPe5xeOADH4j/+q//wmMf+1h0Oh15jz/3uc/hnHPOkddy8skn4+1vfzvCMJy57quvvhpPfepTsWHDBnS7XZx22mn4q7/6KwDx89A0DT/84Q9nfu9d73oXDMPAXXfdVXj/brvtNrz85S/H/e53P7TbbWzatAnPec5zcrU/VfeG78E///M/44//+I+xc+dOdDodDIdDAMC//Mu/4GEPexja7TY2b96MF7zgBTPXtnv3blx44YU49thj0Wq1cMwxx+AZz3hG6nquueYanH322di8eTPa7TZOPPFEvPjFLy78jmp8+ctfxmMe8xh0u10sLCzgnHPOwbXXXps65kUvehF6vR5uvvlmnH322eh2u9ixYwcuvfRSZBvcj0YjvP71r8dxxx2HVquF+93vfvizP/uzmeMA4B//8R/xiEc8Ap1OBxs2bMBjH/tYXHHFFTPHVb0zvu/jkksuwX3ucx84joNNmzbhjDPOwJVXXlnrHjTx6xHmkb6AJppQ421vexsuueQSnHXWWfiDP/gD/PznP8dll12G73//+/jOd74Dy7LgeR7OPvtsTKdTvOpVr8L27dtx11134Ytf/CL6/T6WlpZw7bXX4mlPexpOO+00XHrppWi1WvjFL36B73znO5XXcNlll+EBD3gAfud3fgemaeILX/gCXv7ylyOKIrziFa9IHfuLX/wCz372s/GSl7wEF1xwAT760Y/iRS96ER72sIfhAQ94AIB4Qfrt3/5tBEGAN73pTeh2u/jwhz+Mdrtd655ceeWVuPnmm3HhhRdi+/btuPbaa/HhD38Y1157Lf7zP/8TmqYBAHbt2oVHPOIR6Pf7eOlLX4pTTjkFd911Fz796U9jPB7Dtm2sra3hMY95DK6//nq8+MUvxkMf+lDs378fn//853HnnXdi8+bNcz4x4MCBA3jKU56C8847Dy94wQuwbds2ADHQ6fV6eN3rXoder4errroKF198MYbDIf70T/809f2e9rSn4ZhjjsFrXvMabN++Hddffz2++MUv4jWveQ2e/exn4xWveAUuv/xynH766anPvvzyy/G4xz0OO3fuLLy+73//+/iP//gPnHfeeTj22GNx66234rLLLsPjHvc4XHfddeh0OgAw1715+9vfDtu28Yd/+IeYTqewbRsf//jHceGFF+LhD3843v3ud2PPnj34q7/6K3znO9/BD3/4QywvLwMAnvWsZ+Haa6/Fq171KpxwwgnYu3cvrrzyStx+++3y70960pOwZcsWvOlNb8Ly8jJuvfVW/Nu//Vvls/jEJz6BCy64AGeffTbe8573YDwe47LLLsMZZ5yBH/7whzjhhBPksWEY4slPfjIe9ahH4b3vfS++8pWv4E/+5E8QBAEuvfRSAIAQAr/zO7+Db3zjG3jJS16C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BPjEJz4BwzCkYPLSSy/Ft771LZxzzjk4/vjjsXfvXnzwgx/EscceizPOOKPwGp70pCfBtm08/elPx8te9jKsra3hb//2b7F161bcfffd6/peb3zjG/GJT3wCT37yk/Ga17xGlhkff/zxlXn1xcVFqVPwfR87d+7EFVdcgVtuuWXm2He961244oorcOaZZ+KlL30p7n//++Puu+/Gv/zLv+Db3/42lpeX8YY3vAGf/vSn8ZznPEemDQ4ePIjPf/7z+NCHPoQHP/jBeMADHoBHPepRePOb34yDBw9i48aN+Od//ucZUFgWv/mbv4kNGzbgggsuwKtf/WpomoZPfOITM4uVruu47LLL8PSnPx0PechDcOGFF+KYY47Bz372M1x77bX46le/mjr+/PPPxx/+4R8CQK30DgA87WlPwyc+8QksLS3h1FNPxXe/+1187Wtfw6ZNm1LH1bk3RWFZFt7znvfgwgsvxJlnnonnPe95ssz4hBNOkCnCG264AU94whPw3Oc+F6eeeipM08RnPvMZ7NmzB+eddx4A4O///u/xwQ9+EOeeey5OPvlkrK6u4m//9m+xuLiIpz71qYXXsLi4iMsuuwwvfOEL8dCHPhTnnXcetmzZgttvvx1f+tKX8Fu/9VspoOE4Dr7yla/gggsuwCMf+Uh8+ctfxpe+9CW85S1vwZYtWwAAT3/60/Hbv/3b+KM/+iPceuutePCDH4wrrrgCn/vc53DRRRdJMHvve98bf/RHf4S3v/3teMxjHoP/8T/+B1qtFr7//e9jx44dePe7313rWXGceuqpeNzjHoeHPexh2LhxI6655hp8+tOfTol6m/h/IH75hUNNNBFHUTnrBz7wAXHKKacIy7LEtm3bxB/8wR+kSlBvvvlm8eIXv1icfPLJwnEcsXHjRvHbv/3b4mtf+5o85utf/7p4xjOeIXbs2CFs2xY7duwQz3ve88QNN9xQeV2f//znxWmnnSYcxxEnnHCCeM973iM++tGPzlzr8ccfn1sKeeaZZ4ozzzwz9bOf/OQn4swzzxSO44idO3eKt7/97eLv/u7vapUZ33nnneLcc88Vy8vLYmlpSTznOc8Ru3btEgDEn/zJn6SOve2228T5558vtmzZIlqtljjppJPEK17xCjGdTuUxBw4cEK985SvFzp07hW3b4thjjxUXXHCB2L9/vzzmpptuEmed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AIBbb731Go+kiy666KKLLrrYNA4PDzGZTGqPuSGt7pMkweOPP47RaAQhxBU993w+x6233opHH330aWuj/+XwGYHucz7dovucT5/4cviMQPc5y0JKicPDQ9x0000wjHqVyQ3JoBiGgVtuueWq/o7xePy0fqCAL4/PCHSf8+kW3ed8+sSXw2cEus9ZjCbmhKMTyXbRRRdddNFFF9dddACliy666KKLLrq47qIDKIXo9Xr4sR/7MfR6vWs9lKsWXw6fEeg+59Mtus/59Ikvh88IdJ/zycYNKZLtoosuuuiiiy6e3tExKF100UUXXXTRxXUXHUDpoosuuuiiiy6uu+gAShdddNFFF110cd1FB1C66KKLLrrooovrLjqA0kUXXXTRRRddXHfRARQt3vWud+EZz3gGXNfFPffcgz/+4z++1kO6ovHP//k/hxAi99/dd999rYf1pOP3fu/38C3f8i246aabIITAf/kv/yX3fSklfvRHfxRnz55Fv9/Hq171Knz2s5+9NoN9EtH0Ob/ru75r7f6+9rWvvTaDPWa84x3vwFd/9VdjNBrh1KlT+NZv/VY89NBDuWM8z8N9992H3d1dbG1t4du//dtx/vz5azTi40Wbz/kN3/ANa/fz+77v+67RiI8XP//zP48XvvCFymH03nvvxX/7b/9Nff/pcC+B5s/5dLiXxXjnO98JIQTe+ta3qq9d6fvZARSKX/3VX8Xb3vY2/NiP/Rj+5E/+BC960Yvwmte8BhcuXLjWQ7ui8fznPx9PPPGE+u8P/uAPrvWQnnQsFgu86EUvwrve9a7S7//ET/wEfvZnfxa/8Au/gI985CMYDod4zWteA8/znuKRPrlo+pwA8NrXvjZ3f3/lV37lKRzhk4/7778f9913Hz784Q/j/e9/P8IwxKtf/WosFgt1zA/+4A/iN37jN/Brv/ZruP/++/H444/jDW94wzUc9ebR5nMCwJvf/Obc/fyJn/iJazTi48Utt9yCd77znXjwwQfxsY99DK94xSvw+te/Hn/2Z38G4OlxL4Hmzwnc+PdSj49+9KP41//6X+OFL3xh7utX/H7KLqSUUr7sZS+T9913n/p3HMfypptuku94xzuu4aiubPzYj/2YfNGLXnSth3FVA4B83/vep/6dJIk8c+aM/Mmf/En1tdlsJnu9nvyVX/mVazDCKxPFzymllG9605vk61//+msynqsVFy5ckADk/fffL6VM751t2/LXfu3X1DF//ud/LgHIBx544FoN80lH8XNKKeVf/st/Wf7AD/zAtRvUVYrt7W35b//tv33a3ksO/pxSPr3u5eHhoXzWs54l3//+9+c+19W4nx2DAiAIAjz44IN41atepb5mGAZe9apX4YEHHriGI7vy8dnPfhY33XQT7rzzTnznd34nHnnkkWs9pKsaDz/8MM6dO5e7t5PJBPfcc8/T7t4CwIc+9CGcOnUKz3nOc/D93//9uHz58rUe0pOKg4MDAMDOzg4A4MEHH0QYhrn7effdd+O22267oe9n8XNy/NIv/RJOnDiBF7zgBXj729+O5XJ5LYZ3RSKOY7znPe/BYrHAvffe+7S9l8XPyfF0uZf33Xcf/upf/au5+wZcnXfzhuxmfKXj0qVLiOMYp0+fzn399OnT+PSnP32NRnXl45577sG73/1uPOc5z8ETTzyBH//xH8fXf/3X41Of+hRGo9G1Ht5ViXPnzgFA6b3l7z1d4rWvfS3e8IY34I477sDnP/95/NN/+k/xute9Dg888ABM07zWw9s4kiTBW9/6Vnzt134tXvCCFwBI76fjOJhOp7ljb+T7WfY5AeA7vuM7cPvtt+Omm27CJz/5SfyTf/JP8NBDD+G9733vNRzt5vGnf/qnuPfee+F5Hra2tvC+970Pz3ve8/CJT3ziaXUvqz4n8PS5l+95z3vwJ3/yJ/joRz+69r2r8W52AOXLKF73utepv7/whS/EPffcg9tvvx3/6T/9J3zP93zPNRxZF1ci/tbf+lvq71/xFV+BF77whXjmM5+JD33oQ3jlK195DUd2vLjvvvvwqU996mmhk6qLqs/5vd/7vervX/EVX4GzZ8/ila98JT7/+c/jmc985lM9zGPHc57zHHziE5/AwcEB/vN//s9405vehPvvv/9aD+uKR9XnfN7znve0uJePPvoofuAHfgDvf//74bruU/I7uxQPgBMnTsA0zTW18fnz53HmzJlrNKqrH9PpFM9+9rPxuc997loP5aoF378vt3sLAHfeeSdOnDhxQ97ft7zlLfjN3/xNfPCDH8Qtt9yivn7mzBkEQYDZbJY7/ka9n1WfsyzuueceALjh7qfjOLjrrrvw0pe+FO94xzvwohe9CP/qX/2rp929rPqcZXEj3ssHH3wQFy5cwEte8hJYlgXLsnD//ffjZ3/2Z2FZFk6fPn3F72cHUJA+WC996UvxgQ98QH0tSRJ84AMfyOUQn25xdHSEz3/+8zh79uy1HspVizvuuANnzpzJ3dv5fI6PfOQjT+t7CwCPPfYYLl++fEPdXykl3vKWt+B973sffvd3fxd33HFH7vsvfelLYdt27n4+9NBDeOSRR26o+9n0OcviE5/4BADcUPezLJIkge/7T5t7WRX8OcviRryXr3zlK/Gnf/qn+MQnPqH++6qv+ip853d+p/r7Fb+fT17T+/SI97znPbLX68l3v/vd8n/9r/8lv/d7v1dOp1N57ty5az20KxY/9EM/JD/0oQ/Jhx9+WP7hH/6hfNWrXiVPnDghL1y4cK2H9qTi8PBQfvzjH5cf//jHJQD5Uz/1U/LjH/+4/OIXvyillPKd73ynnE6n8td//dflJz/5Sfn6179e3nHHHXK1Wl3jkW8WdZ/z8PBQ/vAP/7B84IEH5MMPPyz/x//4H/IlL3mJfNazniU9z7vWQ28d3//93y8nk4n80Ic+JJ944gn133K5VMd83/d9n7ztttvk7/7u78qPfexj8t5775X33nvvNRz15tH0OT/3uc/Jf/Ev/oX82Mc+Jh9++GH567/+6/LOO++UL3/5y6/xyDeLH/mRH5H333+/fPjhh+UnP/lJ+SM/8iNSCCF/53d+R0r59LiXUtZ/zqfLvSyLYnXSlb6fHUDR4ud+7ufkbbfdJh3HkS972cvkhz/84Ws9pCsab3zjG+XZs2el4zjy5ptvlm984xvl5z73uWs9rCcdH/zgByWAtf/e9KY3SSnTUuN/9s/+mTx9+rTs9Xryla98pXzooYeu7aCPEXWfc7lcyle/+tXy5MmT0rZtefvtt8s3v/nNNxzALvt8AOQv/uIvqmNWq5X8h//wH8rt7W05GAzkt33bt8knnnji2g36GNH0OR955BH58pe/XO7s7Mheryfvuusu+Y/+0T+SBwcH13bgG8bf//t/X95+++3ScRx58uRJ+cpXvlKBEymfHvdSyvrP+XS5l2VRBChX+n4KKaU8HvfSRRdddNFFF110cXWi06B00UUXXXTRRRfXXXQApYsuuuiiiy66uO6iAyhddNFFF1100cV1Fx1A6aKLLrrooosurrvoAEoXXXTRRRdddHHdRQdQuuiiiy666KKL6y46gNJFF1100UUXXVx30QGULrrooosuuujiuosOoHTRRRdddNFFF9dddACliy666KKLLrq47qIDKF100UUXXXTRxXUX/3/87gCBVTacTAAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 1
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
